scrollView中使用AutoLayout布局,在viewDidLoad中設(shè)置了contentSize屬性梭冠。發(fā)現(xiàn)在iOS6中運行時辕狰,scrollView無法滾動,即contentSize并不符合在viewDidLoad中設(shè)置的大小控漠。
最終發(fā)現(xiàn)問題如下:
iOS6中的AutoLayout機(jī)制蔓倍,在viewDidLoad函數(shù)被執(zhí)行后,AutoLayout會重新把contentSize修改為符合屏幕大小的數(shù)值盐捷,也就是說柬脸,現(xiàn)在的contentSize又適合了屏幕大小,并沒有大于UIScrollView本身內(nèi)容的大小毙驯。
解決辦法:
在viewDidAppear方法中給scrollView設(shè)置contentSize屬性:
- (void)viewDidAppear:(BOOL)amimated
{
[super viewDidAppear:animated];
_scorllView.contentSize = CGSizeMake(width,height);
}
這個函數(shù)會在autoLayout之后執(zhí)行,也就是說灾测,在iOS6中爆价,autoLayout執(zhí)行在viewDidLoad及viewWillAppear之后垦巴,并執(zhí)行在viewDidAppear之前。
另外延伸的說一下铭段,在Xib中做頁面布局并使用AutoLayout時骤宣,布局會發(fā)生在viewWillAppear之后和viewDidAppear之前,所以序愚,想得到布局完成的View進(jìn)行查看或操作憔披,至少要等到viewDidAppear執(zhí)行時。