1.添加點按手勢:
//添加一個點按手勢
UITapGestureRecognizer*tap = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tap)];
//開啟圖片可以進行交互
adImageView.userInteractionEnabled=YES;
[adImageViewaddGestureRecognizer:tap];
2.點擊cell進行頁面跳轉(zhuǎn):
#pragma mark - UICollectionViewDelegate
//點擊cell就會調(diào)用
- (void)collectionView:(UICollectionView*)collectionView didSelectItemAtIndexPath:(NSIndexPath*)indexPath
{
//獲取對應(yīng)模型
XMGSquareItem*item =_squareItems[indexPath.row];
//只要不是http,就跳轉(zhuǎn)到網(wǎng)頁
if(![item.urlhasPrefix:@"http"])return;
//跳轉(zhuǎn)到網(wǎng)頁
//展示W(wǎng)KWebView
XMGWebViewController*webVc = [[XMGWebViewControlleralloc]init];
webVc.url= [NSURLURLWithString:item.url];
[self.navigationControllerpushViewController:webVcanimated:YES];
與push相反的是[selfpopViewControllerAnimated:YES];
3.:設(shè)置全屏滑動返回功能,pan:滑動返回功能
//1.添加自己的滑動手勢,用系統(tǒng)的target= <(action=handleNavigationTransition:方法實現(xiàn)滑動返回
idtarget =self.interactivePopGestureRecognizer.delegate;
//2.創(chuàng)建手勢
UIPanGestureRecognizer*pan = [[UIPanGestureRecognizeralloc]initWithTarget:targetaction:@selector(handleNavigationTransition:)];
//3.將手勢添加到當(dāng)前控制器中
[self.viewaddGestureRecognizer:pan];
//4.去掉系統(tǒng)邊緣滑動手勢
self.interactivePopGestureRecognizer.enabled=NO;
//5.設(shè)置當(dāng)前控制器為手勢代理
pan.delegate=self;
//每次觸發(fā)手勢就會判斷是否接受手勢
- (BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch{
//只有非根控制器才允許滑動,判斷當(dāng)前是不是跟控制器,如果不是允許滑動
returnself.childViewControllers.count>1;
}
4.解決tabbar條按鈕圖片和文字渲染問題:
1>解決文字渲染
/*
1.appearance獲取全局UItabBar外觀,在開發(fā)中盡量不要使用appearance,而是要使用appearanceWhenContainedIn:表示獲取哪個類下面的導(dǎo)航條
2.導(dǎo)航條標(biāo)題字體的大小由導(dǎo)航條決定
*/
UITabBarItem*item = [UITabBarItemappearanceWhenContainedIn:self,nil];
//1.創(chuàng)建字典
NSMutableDictionary*attr = [NSMutableDictionarydictionary];
//用字典描述文本屬性,設(shè)置其顏色為黑色
attr[NSForegroundColorAttributeName] = [UIColorblackColor];
//設(shè)置選中狀態(tài)下的文字顏色為黑色
[itemsetTitleTextAttributes:attrforState:UIControlStateSelected];
//在正常狀態(tài)下設(shè)置字條大小,只有在正常狀態(tài)下才能設(shè)置字體大小
//創(chuàng)建字典用來描述文本屬性
NSMutableDictionary*attrNor = [NSMutableDictionarydictionary];
//設(shè)置字體大小
attrNor[NSFontAttributeName] = [UIFontsystemFontOfSize:14];
//在正常狀態(tài)下設(shè)置字體為16號字體
[itemsetTitleTextAttributes:attrNorforState:UIControlStateNormal];
}
2>解決圖片渲染:給圖片添加個分類方法
#import"UIImage+Image.h"
@implementationUIImage (Image)
//實現(xiàn)不要加載渲染圖片的方法
+(UIImage*)imageWithOriginalRenderingMode:(NSString*)imageName{
//1.創(chuàng)建圖片
UIImage*image = [UIImageimageNamed:imageName];
//返回選中的圖片
return[imageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
@end
5.解決xib拉伸中的bug:
01-當(dāng)控件從xib加載,發(fā)現(xiàn)莫名其妙的不好使,怎么解決
答:// bug:如果發(fā)現(xiàn)一個控件從xib加載出來,顯示的效果跟xib不一樣,就可能被拉伸,取消這個控件不要拉伸
//理論:任何一個view,都會有額外拉伸屬性
self.autoresizingMask=UIViewAutoresizingNone;
6.全局滑動手勢/02進階/彩票/02day/12-滑動移除控制器全屏實現(xiàn)&解決bug(添加在view上)
tableview左右滑動,讓tableview添加到collectionView的cell上,滑動collectionView的cell實現(xiàn)
性能優(yōu)化:
使用collectionView的好處是,其可以循環(huán)利用解決渲染,當(dāng)一個view出現(xiàn)在屏幕上時就會渲染占用內(nèi)存降低性能,當(dāng)用collectionView時,當(dāng)一個新的cell從緩存池出去時,會將對應(yīng)的子控制器的view添加到cell上,同時刪除之前子控制器的view降低內(nèi)存,并將之前的cell放入緩存池中
7.移動下劃線滾動位置:
//移動下劃線的位置
[UIViewanimateWithDuration:0.25animations:^{
_underLineView.xmg_centetX= titleButton.xmg_centetX;
}];
}