首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态或原型UITableViewCell子视图在Xcode 6.1.1,iOS 8.1SDK上的Storyboard中被错误地调整大小

静态或原型UITableViewCell子视图在Xcode 6.1.1,iOS 8.1SDK上的Storyboard中被错误地调整大小
EN

Stack Overflow用户
提问于 2014-12-03 07:02:59
回答 1查看 1.4K关注 0票数 2

因此,我更新到了Xcode 6.1之前和今天的6.1.1 。我注意到在Storyboard中使用静态/原型UITableViewCell (或Prototype UICollectionViewCell)时存在一个问题。在设备/模拟器上运行时,带有某些自动调整掩码的所有子视图都将被错误地调整大小。

UISlider作为静态UITableViewCell的subView

自动调整规则是灵活的宽度。或者灵活的LeftMargin也会引起问题.

观察滑翔机太长了,从屏幕上掉了右

我已经向苹果提交了一个bugreport。希望能很快收到回复。

EN

回答 1

Stack Overflow用户

发布于 2015-02-02 16:20:10

我也遇到了同样的问题,并且找到了一个适合我的解决方案。看起来Xcode并不是(总是)记录表视图单元及其内容视图的初始帧大小。

如果您在另一个编辑器中打开故事板(最好关闭Xcode ),并查看您的单元格,您应该会发现以下内容:

代码语言:javascript
复制
<tableViewCell ...>
   <autoresizingMask .../>
   <tableViewCellContentView ...>

为了简洁起见,省略了上面的一些键和属性。上面所缺少的是rect键,用于tableViewCelltableViewCellContentView。自动调整大小依赖于初始帧大小来确定右侧/底部的偏移量。如果没有初始帧大小(由rect键提供),则计算初始帧为0、0、0、0,这不会影响锚定在顶部或左侧的项,但是(当然)会影响锚定在右侧/底部的项。

要解决这个问题,请确保每个tableViewCelltableViewCellContentView都有一个(正确的)tableViewCellContentView密钥,例如:

代码语言:javascript
复制
<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 (灰色)中显示的宽度/高度是应该放入故事情节提要的内容(手动)。

我应该补充一点,Xcode在编辑时不会从情节提要中删除这些rect键,所以在编辑完成之后,故事情节提要仍然应该完全可以用Xcode编辑。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27265576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档