UITableView单元在初始加载时不将其框架大小调整为iPhone 6s大小

时间:2016-04-06 07:18:20

标签: ios uitableview

由于我使用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但我认为这不是精确的解决方案,但它工作正常......

enter image description here

enter image description here

2 个答案:

答案 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:如果你绝对是自动布局的初学者,我建议请尝试重置自动布局约束,它几乎每次使用都有效。

enter image description here

答案 1 :(得分:0)

请在tableView上使用AutoLayout,并使用SuperView将table,Trailing,Top和Bottom约束赋予tableView,因此tableView的框架将在所有设备中根据其SuperView。