項目總結-5

經典錯誤

報錯>>>>>>-[UIView setSelected:]: unrecognized selector sent to instance 0x7ff3f35b1070
報錯原因>>>>>>錯誤將UIView當作按鈕來使用使用

報錯>>>>>>>>-[XMGPerson length]: unrecognized selector sent to instance 0x7ff3f35b1070
報錯原因>>>>>>>>錯誤將XMGPerson當做NSString來使用,比如
 id obj = [[XMGPerson alloc] init];
 NSString *string = obj;
 string.length;

報錯>>>>>-[XMGPerson setObject:forKeyedSubscript:]: unrecognized selector sent to instance 0x7ff3f35b1070
報錯原因>>>>>>>錯誤將XMGPerson當做NSMutableDictionary來使用

 規律: 方法名里面包含了Subscript的方法,一般都是集合的方法(比如字典\數組)

  • 實現系統的ViewWithTag:方法
@implementation UIView
- (UIView *)viewWithTag:(NSInteger)tag
{
    // 如果自己的tag符合要求, 就返回自己
    if (self.tag == tag) return self;

    // 遍歷子控件,查找tag符合要求的子控件
    for (UIView *subview in self.subviews) {
//        if (subview.tag == tag) return subview;

        UIView *resultView = [subview viewWithTag:tag];
        if (resultView) return resultView;
    }

    // 找不到符合要求的子控件
    return nil;
}
@end
  • 監聽狀態欄的點擊
/**
 *  可以在這個AppDelegate方法中監聽到狀態欄的點擊
 */
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    if ([touches.anyObject locationInView:nil].y > 20) return;

    NSLog(@"點擊了狀態欄")
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,809評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,180評論 4 61
  • 你會做選擇嗎?你的選擇更明智嗎?你有感覺選錯了方向,越努力越錯嗎? 其實人的選擇都是有機會成本的,選擇了A,就沒辦...
    路上的幸福_影閱讀 406評論 0 4
  • 好像嗖的一下 心就被掏空了 氧氣和血液一下子都被抽走了 只剩下空空的心房和心室 殘破的毛細血管在上方飄蕩 仿佛在訴...
    大棚蓋澆飯閱讀 240評論 0 0
  • 最近老婆們(泛指所有認識的女人)都狂迷《三生三世十里桃花》,每天擠地鐵挨批評都變成了歷劫,小成功領獎金都變成了升仙...
    小丸子爸爸教練堂閱讀 1,208評論 0 6