記錄在iOS 11上遇到的一些問題~
坑1
-(void)layoutSubviews{
/*此方法在iOS11上引入了新的機制篮撑,在執(zhí)行動畫時屁使,會調用此方法刷新UI在岂;
所以如果在此方法中定義了View的frame的話,會引起問題
*/
}
iOS10.3.3下蛮寂,一個View從創(chuàng)建--->執(zhí)行show動畫--->隱藏
iOS 11下蔽午,一個View從創(chuàng)建--->執(zhí)行show動畫--->隱藏
iOS10.3.3執(zhí)行動畫不會調用layoutSubviews
方法,而在iOS 11下酬蹋,當執(zhí)行動畫時及老,會多次調用layoutSubviews
此方法。
//這是view的展示動畫范抓,在iOS 11上沒有效果骄恶,研究了很久,最后發(fā)現是因為我在`layoutSubviews`初始化的view的frame.
[UIView animateWithDuration:animation?AnimationDelay:0 animations:^{
_topView.frame = CGRectMake(0, -TopViewHeight, ViewSize(self).width, TopViewHeight);
_bottomView.frame = CGRectMake(0, ViewSize(self).height, ViewSize(self).width,BottomViewHeight);
} completion:^(BOOL finished) {
self.hidden = YES;
}];
坑一結論
如果你習慣在layoutSubviews
此方法里定義view
的frame
匕垫,可能要針對iOS11做處理僧鲁。