开发中常见的bug/及项目解说

1.添加点按手势:

//添加一个点按手势

UITapGestureRecognizer*tap = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tap)];

//开启图片可以进行交互

adImageView.userInteractionEnabled=YES;

[adImageViewaddGestureRecognizer:tap];

2.点击cell进行页面跳转:

#pragma mark - UICollectionViewDelegate

//点击cell就会调用

- (void)collectionView:(UICollectionView*)collectionView didSelectItemAtIndexPath:(NSIndexPath*)indexPath

{

//获取对应模型

XMGSquareItem*item =_squareItems[indexPath.row];

//只要不是http,就跳转到网页

if(![item.urlhasPrefix:@"http"])return;

//跳转到网页

//展示WKWebView

XMGWebViewController*webVc = [[XMGWebViewControlleralloc]init];

webVc.url= [NSURLURLWithString:item.url];

[self.navigationControllerpushViewController:webVcanimated:YES];

与push相反的是[selfpopViewControllerAnimated:YES];

3.:设置全屏滑动返回功能,pan:滑动返回功能

//1.添加自己的滑动手势,用系统的target= <(action=handleNavigationTransition:方法实现滑动返回

idtarget =self.interactivePopGestureRecognizer.delegate;

//2.创建手势

UIPanGestureRecognizer*pan = [[UIPanGestureRecognizeralloc]initWithTarget:targetaction:@selector(handleNavigationTransition:)];

//3.将手势添加到当前控制器中

[self.viewaddGestureRecognizer:pan];

//4.去掉系统边缘滑动手势

self.interactivePopGestureRecognizer.enabled=NO;

//5.设置当前控制器为手势代理

pan.delegate=self;

//每次触发手势就会判断是否接受手势

- (BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch{

//只有非根控制器才允许滑动,判断当前是不是跟控制器,如果不是允许滑动

returnself.childViewControllers.count>1;

}

4.解决tabbar条按钮图片和文字渲染问题:

1>解决文字渲染

/*

1.appearance获取全局UItabBar外观,在开发中尽量不要使用appearance,而是要使用appearanceWhenContainedIn:表示获取哪个类下面的导航条

2.导航条标题字体的大小由导航条决定

*/

UITabBarItem*item = [UITabBarItemappearanceWhenContainedIn:self,nil];

//1.创建字典

NSMutableDictionary*attr = [NSMutableDictionarydictionary];

//用字典描述文本属性,设置其颜色为黑色

attr[NSForegroundColorAttributeName] = [UIColorblackColor];

//设置选中状态下的文字颜色为黑色

[itemsetTitleTextAttributes:attrforState:UIControlStateSelected];

//在正常状态下设置字条大小,只有在正常状态下才能设置字体大小

//创建字典用来描述文本属性

NSMutableDictionary*attrNor = [NSMutableDictionarydictionary];

//设置字体大小

attrNor[NSFontAttributeName] = [UIFontsystemFontOfSize:14];

//在正常状态下设置字体为16号字体

[itemsetTitleTextAttributes:attrNorforState:UIControlStateNormal];

}

2>解决图片渲染:给图片添加个分类方法

#import"UIImage+Image.h"

@implementationUIImage (Image)

//实现不要加载渲染图片的方法

+(UIImage*)imageWithOriginalRenderingMode:(NSString*)imageName{

//1.创建图片

UIImage*image = [UIImageimageNamed:imageName];

//返回选中的图片

return[imageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

}

@end

5.解决xib拉伸中的bug:

01-当控件从xib加载,发现莫名其妙的不好使,怎么解决

答:// bug:如果发现一个控件从xib加载出来,显示的效果跟xib不一样,就可能被拉伸,取消这个控件不要拉伸

//理论:任何一个view,都会有额外拉伸属性

self.autoresizingMask=UIViewAutoresizingNone;

6.全局滑动手势/02进阶/彩票/02day/12-滑动移除控制器全屏实现&解决bug(添加在view上)

tableview左右滑动,让tableview添加到collectionView的cell上,滑动collectionView的cell实现

性能优化:

使用collectionView的好处是,其可以循环利用解决渲染,当一个view出现在屏幕上时就会渲染占用内存降低性能,当用collectionView时,当一个新的cell从缓存池出去时,会将对应的子控制器的view添加到cell上,同时删除之前子控制器的view降低内存,并将之前的cell放入缓存池中

7.移动下划线滚动位置:

//移动下划线的位置

[UIViewanimateWithDuration:0.25animations:^{

_underLineView.xmg_centetX= titleButton.xmg_centetX;

}];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,780评论 4 61
  • 一 、使用git管理工程 1、可以使用OSChina远程管理工程(免费) 2、可以使用GitHub网站进行远程管理...
    YuGHo阅读 7,146评论 1 3
  • 今天根据新学到的快速阅读方法速读了一遍《穷爸爸富爸爸》,第一次阅读这本书,也是第一次尝试用新学到的阅读方法阅读。 ...
    阑十三阅读 2,981评论 0 11
  • 分权机制--枢纽的载体 可能有人会说,我们公司每个员工的责权利都是平衡的,没什么问题,那么恭喜你,咱们可以一起进入...
    寒阳198阅读 1,387评论 -1 3

友情链接更多精彩内容