【发布时间】:2015-03-21 19:52:12
【问题描述】:
我有一个 UITableViewController。这个表视图有一个标题视图。 我使用带有自动布局的 main.storyboard 来设置我的控制器。
在我的 main.storyboard 中,对于 w:Any h:Any,我的视图控制器的预览设置为默认大小 600x600。在里面,我的标题视图设置为 600x200。
在我的标题视图中,我将 imageView 设置为 Aspect Fill 模式:
约束:
在资产中,我的图片有@2x 和@3x 大小。
- header-image@2x.png -> 750x498
- header-image@3x.png -> 1242x825
当我编译时,在我为 iPhone 5 获得的模拟器中:
对于 iPhone 6:
对于 iPhone 6+:
- 对于 iPhone 5,图像从状态栏下方开始。我不 明白为什么?
- 对于 iPhone 6 和 iPhone 6+,图像裁剪了我的表格视图的第一个单元格。并且图像的顶部不会随着视图的顶部调整。
我不知道如何将tableHeaderView的高度调整为我的图像的高度,因为这个高度取决于设备。
我试图以编程方式设置标题的框架,但徒劳无功:
var frame:CGRect!
frame.size.width = self.bgHeaderImageView.image?.size.width
frame.size.height = self.bgHeaderImageView.image?.size.height
self.tableView.tableHeaderView?.frame = frame
我收到 2 个错误:“Value optional type CGFloat? not unwrapped”
如果我用
纠正 var frame:CGRect!
frame.size.width = self.bgHeaderImageView.image?.size.width!
frame.size.height = self.bgHeaderImageView.image?.size.height!
self.tableView.tableHeaderView?.frame = frame
我有 2 个错误:“后缀的操作数!应该有可选类型”
是否可以直接调整情节提要中的大小而不是通过编程方式?
我可能在这里遗漏了一些东西......
【问题讨论】:
标签: ios uitableview swift autolayout