1枚抵、圖片出現(xiàn)鋸齒(顯示區(qū)域與圖片像素不匹配)
解決方案:
先將圖片畫出來,進行裁剪使用
- (UIImage *)scaleToSize:(UIImage )img size:(CGSize)size {
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
[img drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;
}
2碎连、徹底移除cell 的分割線(有的cell要分割線,有的cell不要分隔線驮履,又有的cell分割線拒里前端15pix鱼辙。搞得我也真是醉了,如果用自定義分割線的話也不好處理玫镐。)
解決方法:
在自定義cell中重寫UITableviewCell的addSubView:方法
- (void)addSubview:(UIView *)view
{
if (![view isKindOfClass:[NSClassFromString(@"_UITableViewCellSeparatorView") class]] && view)
[super addSubview:view];
}
3倒戏、webViewDidFinishLoad 執(zhí)行多次的有關(guān)問題說網(wǎng)頁內(nèi)有異步請求或者重定向時,就會多次調(diào)用上述方法
解決辦法:
(1)恐似、用webView的isLoading屬性:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
if (webView.isLoading) {
return;
}
//code...
}
這樣每進入一個新的網(wǎng)頁杜跷,webViewDidFinishLoad只執(zhí)行一次。
(2)矫夷、定義一個屬性:@property(nonatomic) BOOL isFirstLoadWeb;
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
if (!self.isFirstLoadWeb) {
self.isFirstLoadWeb = YES;
}else{
return;
//code...
}
4葛闷、你在viewcontroller中使用scrollview,并在scrollview中的添加了viewA口四,但viewA的位置總是差些像素孵运。通過Dlog發(fā)現(xiàn)又都是正常的。
解決方法:
是viewcontroller 的automaticallyAdjustsScrollViewInsets這個屬性在作怪蔓彩。automaticallyAdjustsScrollViewInsets的作用是:讓scroll view的內(nèi)容自動調(diào)整治笨,且他的默認是YES;不想讓它自動調(diào)整就將它設(shè)置為NO,就好了赤嚼。(即:self.automaticallyAdjustsScrollViewInsets = NO;)
5旷赖、想打印視圖的層次結(jié)構(gòu)
解決方法:
打印視圖的層次結(jié)構(gòu)的方法叫做 recursiveDescription,recursiveDescription能打印出任意視圖的視圖層次結(jié)構(gòu)更卒。值得注意是它是一個私有方法等孵, “不應(yīng)該被包含在任何會被放到 App Store 的代碼里”,但它對與視圖層次結(jié)構(gòu)實在非常有用蹂空。
以打印一個cell的層次結(jié)構(gòu)為例:
NSLog(@"Cell recursive description:\n\n%@\n\n", [cell performSelector:@selector(recursiveDescription)]);
6俯萌、view被導(dǎo)航條給覆蓋了果录,并沒有從導(dǎo)航條的下面開始布局
解決方法:
(1)、設(shè)置edgesForExtendedLayout
self.edgesForExtendedLayout = UIRectEdgeNone; //view不需要拓展到整個屏幕
(2)咐熙、設(shè)置導(dǎo)航條的透明度
self.navigationController.navigationBar.translucent = NO;
7弱恒、斷點調(diào)試技巧
(1)、條件斷點
打上斷點之后棋恼,對斷點進行編輯返弹,設(shè)置相應(yīng)過濾條件。下面簡單的介紹一下條件設(shè)置:
Condition:返回一個布爾值爪飘,當(dāng)布爾值為真觸發(fā)斷點义起,一般里面我們可以寫一個表達式。
Ignore:忽略前N次斷點师崎,到N+1次再觸發(fā)斷點默终。
Action:斷點觸發(fā)事件,分為六種:
AppleScript:執(zhí)行腳本抡诞。
Capture GPU Frame:用于OpenGL ES調(diào)試穷蛹,捕獲斷點處GPU當(dāng)前繪制幀土陪。
Debugger Command:和控制臺中輸入LLDB調(diào)試命令一致昼汗。
Log Message:輸出自定義格式信息至控制臺。
Shell Command:接收命令文件及相應(yīng)參數(shù)列表鬼雀,Shell Command是異步執(zhí)行的顷窒,只有勾選“Wait until done”才會等待Shell
命令執(zhí)行完在執(zhí)行調(diào)試。
Sound:斷點觸發(fā)時播放聲音源哩。
這些功能平時在調(diào)試程序的過程中都可以進行嘗試鞋吉,說實話我用的設(shè)置Condition項會較多些。
(2)励烦、異常斷點
異常斷點可以快速定位不滿足特定條件的異常谓着,比如常見的數(shù)組越界,這時候很難通過異常信息定位到錯誤所在位置坛掠。這個時候異常斷點就可以發(fā)揮作用了赊锚。
添加異常斷點的步驟:
(3)、符號斷點
符號斷點的創(chuàng)建方式和異常斷點一樣一樣的屉栓,在符號斷點中可以指定要中斷執(zhí)行的方法:
舉個例子舷蒲,常見的場景,我想讓它執(zhí)行到ViewController類中的viewWillAppear方法就中斷執(zhí)行:
添加符號斷點的步驟:
Symbol:[ViewController viewWillAppear:]即[類名 方法名]可以執(zhí)行到指定類的指定方法中開始斷點友多。如果只有viewWillAppear:即方法名牲平,它會執(zhí)行到所以類中的viewWillAppear:方法中開始斷點。