其中一个ViewController执行以下语句
UIViewController *vc = [[UIViewController alloc] init];
[self.navigationController pushViewController:vc animated:false];
将要被push的ViewController的viewDidLoad方法中,我init了一个textview和一个button,并且addSubview了,然后我在viewWillAppear方法中设置了他们的一点属性,用Masonry做了布局。
然后在第一次push的时候会产生卡顿,请问有什么方法避免?
首先要清除卡頓是發生在哪裡 用Time Profiler看看
或你把程式碼貼出來
在跳轉過去的控制器中設定背景色了麼
需要載入的東西太多 注意自己的程式碼邏輯 卡頓的原因太多你需要找出問題進行針對性的最佳化
可以將跳轉的控制器view設定一個白色背景
跳過去的viewcontroller 的view backgroundcolor 不能為clearcolor
怎麼初始化了一個類別的實例呢?你要跳轉的那個類別的名字不會就叫做UIViewController.h吧?
有可能是下一個頁面的背景顏色問題,我們以前遇到過,是不是有潛在設定透明度?
寫了這麼點東西,會卡?有可能是backgroundColor的問題,最好填程式碼看看
最好push出的控制器 設定背景顏色 不然會造成渲染導致卡頓
在view did appear裡做吧。 viewwillappear和轉場動畫都在同一次runloop迭代中,autolayout本身很耗性能的。把佈局和動畫都放在同一次 runloop迭代中會加重該次迭代的負擔。