一個(gè)已經(jīng)適配了iPhone6/iPhone6Plus的項(xiàng)目衙耕,StoryBoard/Xib中的設(shè)計(jì)視圖寬度是320刃泌,在tableView:cellForRowAtIndexPath:里打印cell.size凡壤,會發(fā)現(xiàn)size.width在iPhone6下是320
這不是很奇怪?
其實(shí)不奇怪耙替,因?yàn)槟闶窃赾ell顯示之前打印size的亚侠,這個(gè)時(shí)候的size還是你這個(gè)cell在StoryBoard/Xib中的設(shè)計(jì)視圖中的大小。想要顯示cell在屏幕上展示的實(shí)際大小俗扇,可以在layoutSubviews方法里打印硝烂,比如:
- (void)layoutSubviews {
[super layoutSubviews];
NSLog(@"self.frame.size is %@", NSStringFromCGSize(self.frame.size));
}
參考文章:
UITableView cell width on iOS 8 stuck at 320pt
The proper way to solve this is to perform your layout in the layoutSubviews method.
In your case, simply call "populateSubviews" within "layoutSubviews" method, like this:
- (void)layoutSubviews {
[super layoutSubviews];
[self populateSubviews];
}
http://www.cocoachina.com/bbs/read.php?tid-309826.html
蘋果的官方問題 cell的content現(xiàn)在不會自適應(yīng),只能自己設(shè)置下铜幽,否則就是320的固定值
在- (void) layoutSubviews再重新設(shè)置下位置