由于我使用UITableView并且tableview中的自定义单元格在IPhone 5,IPhone 5s和IPhone 4中将其宽度设置为320,但在IPhone 6和6P中,它在初始化时不会将tableview单元格宽度调整为414加载甚至我也在viewDidLoad中调用tableview reloadData。我知道tableview在初始加载时使用其大小的默认值但我希望它的初始宽度在Iphone 6& 6上为414。 Ipone 6P ......
由于我也使用自定义单元格,而且在Iphone 6& 6中它的宽度也是320。 Ipone 6P我知道这是tableview的becoz ...
我已经调用了所有布局方法,但没有运气......有人可以解决我的问题,并对这个主题有所了解......
我做过..
cell.bounds = [UIScreen mainscreen].bounds;
在cellforrowatindexpath但我认为这不是精确的解决方案,但它工作正常......
答案 0 :(得分:1)
Autolayout总是很容易和好,但如果你想以编程方式
您应该在运行时获取屏幕大小(宽度),然后更新表格视图框架
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
tableView.frame = CGRectMake(tableView.frame.origin.x, tableView.frame.origin.y, set_new_width_here, tableView.contentSize.height)
//or
var tableFrame: CGRect = tableView.frame
tableFrame.size.width = set_new_wdith_here
tableListView.frame = tableFrame
}
PS:如果你绝对是自动布局的初学者,我建议请尝试重置自动布局约束,它几乎每次使用都有效。
答案 1 :(得分:0)
请在tableView上使用AutoLayout,并使用SuperView将table,Trailing,Top和Bottom约束赋予tableView,因此tableView的框架将在所有设备中根据其SuperView。