所以我更新到 Xcode 6.1更早和6.1.1今天。我注意到在Storyboard中使用Static / Prototype UITableViewCell(或Prototype UICollectionViewCell)时出现了问题。在设备/模拟器上运行时,具有某些自动调整遮罩的所有子视图都将无法正确调整大小。
UISlider作为Static UITableViewCell的子视图
自动调整规则是灵活宽度。或灵活的LeftMargin也会导致问题。
观察滑块太长,偏离屏幕右侧
我已经向Apple提交了一份错误报告。希望很快收到答复。
答案 0 :(得分:2)
我遇到了同样的问题,并找到了适合我的解决方案。似乎Xcode没有(总是)记录表格视图单元格的初始帧大小及其内容视图。
如果您在另一个编辑器中打开故事板(最好关闭Xcode),并查看您的单元格,您应该找到以下内容:
<tableViewCell ...>
<autoresizingMask .../>
<tableViewCellContentView ...>
为简洁起见,省略了上面的许多键和属性。上面缺少的是rect
和tableViewCell
的{{1}}个密钥。自动调整依赖于初始帧大小来确定右/底的偏移量。没有初始帧大小(由tableViewCellContentView
键给出),初始帧计算为0,0,0,0,它不会影响锚定到顶部或左侧的项目,但是(当然)影响固定在右侧/底部的物品。
要解决此问题,请确保每个rect
和rect
都有一个(正确的)tableViewCell
密钥,例如:
tableViewCellContentView
如果您为单元格启用了附件视图,则可能需要缩小该单元格的内容视图宽度。内容视图的Xcode(灰色)中显示的宽度/高度应该放在故事板中(手动)。
我应该补充一点,Xcode在编辑时似乎没有从故事板中删除这些<tableViewCell ...>
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask .../>
<tableViewCellContentView ...>
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
键,因此在编辑完成后,故事板仍应完全可以使用Xcode进行编辑。