iOS常見問題(2)

1、模擬器黑屏數組

  解決方法:框架

2、打代碼時,Xcode沒提示spa

  解決方法:3d

  0. 點擊Preferencescode

  1. 進入Text Editingorm

  2. 勾選對象

3、有時候可能在勾選 Autolayout的時候,搞錯了對象,誤把控制器的View的User Interaction Enabled勾選掉了。blog

  

  解決辦法:User Interaction Enabled 必須勾選,不然控制器根視圖中全部子控件沒法進行任何操做。繼承

  

  

4、訪問權限事件

  錯誤:

  會報連接錯誤。

  

  報錯緣由,利用下劃線訪問了@package這個權限裏的東西。

  

  被@package 修飾的成員屬性只能在同一個框架內部才容許訪問。不然會引起link erro。

  @private 實例變量只能被聲明它的類訪問

  @protected 實例變量能被聲明它的類和子類訪問。

  @public 實例變量能夠被任何類訪問。

5、運行程序時,顯示運行完成,可是模擬器沒反應。

  

  問題緣由: 有時候應用程序的標示符同樣,會致使程序不能成功運行。

  解決方式一:將模擬器以前的程序刪除。

  解決方式二:  將模擬器還原

6、2d表示保留兩位 02d 表示不夠了 用0來補齊。

1 NSLog(@"%02d",cols);

7、Plist文件讀取。

  

  錯誤緣由:不要看到有不少元素的,就認爲是數組。這樣解析是錯誤的。

  _dict = [NSArray arrayWithContentsOfFile:path];

  這個pist文件是一個字典,正確的解析此plist文件。

  // 2.根據文件路徑加載字典

  _dict = [NSDictionary dictionaryWithContentsOfFile:path];

8、給程序拖圖片的時候,必定要注意,以下圖勾選的,都要勾選中。

  

9、禁用UITextField的雙擊出現複製粘貼剪切等操做

  解決方式:

  有時候咱們須要禁用UITextField的雙擊出現copy paste的功能,然而UITextField自己沒有直接設置禁止用戶複製粘貼剪切操做等方法,可是能夠重載canPerformAction方法來實現。

  新建一個類繼承UITextField,而後實現canPerformAction方法:
  只需覆蓋canPerformAction:withSender方法就能夠,canPerformAction:withSender屬於UIResponder類的。

  以下:

1 -(BOOL)canPerformAction:(SEL)action withSender:(id)sender 
2 {
3 UIMenuController *menuController = [UIMenuController sharedMenuController];
4 if (menuController) {
5 [UIMenuController sharedMenuController].menuVisible = NO;
6 }
7 return NO;
8 }

10、將UIButton添加到UILabel,UIButton是不能點擊的。

  緣由:

  1.UILabel是繼承UIView的,默認不能監聽點擊事件。UIButton是繼承UIControl可以監聽點擊事件。

  2.將UIButton添加到UILabel,他們之間的關係是UILabel是UIButton的父視圖,父視圖都不能監聽點擊事件,天然而然不會將事件傳遞給子視圖,所以UIButton也不能監聽點擊事件了。

  思惟指導:有些人會認爲UIControl不是繼承UIView的嗎,都是繼承UIView,爲何單獨繼承UIControl能夠監聽點擊事件,繼承UIControl的父類UIView不能監聽事件了,這是由於咱們通常在父類裏實現的都是一些共用的屬性和方法,而在子類中具體實現子類特有的方法。所以在UIControl實現了監聽點擊的特有方法,即繼承UIControl才能監聽點擊事件。

相關文章
相關標籤/搜索