iOS 用自己的方法名替換系統的。

首先。創建一個系統類的分類。比如view

Method layoutSubviews = class_getInstanceMethod(self, @selector(layoutSubviews));
Method sd_autolayout = class_getInstanceMethod(self, @selector(fhf_autolayout));
method_exchangeImplementations(layoutSubviews, sd_autolayout);

上面三行的效果。就是讓fhf_autolayout替換系統的layoutSubviews方法

但要注意的是這三行要在layoutsubviews方法調用之前調用。

+ (void)load
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        Method layoutSubviews = class_getInstanceMethod(self, @selector(layoutSubviews));
        Method sd_autolayout = class_getInstanceMethod(self, @selector(sd_autolayout));
        method_exchangeImplementations(layoutSubviews, sd_autolayout);
    });
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章