開發(fā)中常見的bug/及項目解說

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;

}];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,096評論 4 61
  • 一 、使用git管理工程 1、可以使用OSChina遠程管理工程(免費) 2、可以使用GitHub網(wǎng)站進行遠程管理...
    YuGHo閱讀 2,560評論 1 3
  • 今天根據(jù)新學(xué)到的快速閱讀方法速讀了一遍《窮爸爸富爸爸》,第一次閱讀這本書,也是第一次嘗試用新學(xué)到的閱讀方法閱讀。 ...
    闌十三閱讀 429評論 0 11
  • 分權(quán)機制--樞紐的載體 可能有人會說,我們公司每個員工的責(zé)權(quán)利都是平衡的,沒什么問題,那么恭喜你,咱們可以一起進入...
    寒陽198閱讀 197評論 -1 3

友情鏈接更多精彩內(nèi)容