UITableViewCell subclass layout messed up in autoLayout-disabled Storyboard(UITableViewCell 子类布局在禁用自动布局的故事板中搞砸了)
问题描述
我在 Storyboard 中创建了一个表格视图,其中包含 Xcode 5 中未选中使用自动布局"的原型单元格.
I have created a table view with prototype cells in a Storyboard with the "Use Autolayout" unchecked in Xcode 5.
单元格是UITableViewCell的子类,主要是添加IBOutlets,里面没有代码.结果是混乱的布局.我尝试更改 Autoresizing 蒙版,但没有成功.也试过这个.
The cells are UITableViewCell subclasses, mainly to add IBOutlets and no code inside. The result is a messed layout. I tried changing the Autoresizing masks with no luck. Also tried this.
但是,如果我实现一个空的 layoutSubviews
则显示正常.知道发生了什么吗?自动布局仍然启用尽管取消选中它?
If I however implement an empty layoutSubviews
it shows ok. Any idea of what's going on?
Is auto layout still enabled despite unchecking it?
更多细节...
@interface SettingDefaultTableViewCell : UITableViewCell
@property (nonatomic, weak) IBOutlet UILabel *label;
@property (nonatomic, weak) IBOutlet UIImageView *imageView;
@property (nonatomic, weak) IBOutlet UIView *backgroundView;
@end
@implementation SettingDefaultTableViewCell
- (void)layoutSubviews
{
// Emtpy implementation to fix weird layout bug
}
@end
禁用自动布局的故事板:
Storyboard with Autolayout disabled:
未使用上述 layoutSubviews
修复时的结果:
Result when layoutSubviews
fix above is not used:
编辑 2:
- 单元格设置为不自动调整子视图大小.
- 虽然以上内容应该足以防止子视图自动调整,但所有自动调整大小的蒙版都设置为仅灵活的右边距和下边距.
- 只有 > 标记设置为灵活的左边距.没有灵活的宽度或高度.
推荐答案
单元格被未记录的 UITableViewCell 的 layoutSubviews
修改:
The cell is getting modified by the undocumented UITableViewCell's layoutSubviews
:
- 尽管没有设置自动调整大小的子视图,但默认实现会更改
backgroundView
框架. - 尽管被配置为自定义样式单元格,它也会将
imageView
(>")向左移动.
- Despite set not no autoresize subviews, the default implementation changes the
backgroundView
frame. - It also moves
imageView
(the ">") to the left despite being configured as a Custom Style cell.
从而避免执行 super 的 layoutSubviews
修复它.
Thus avoiding executing super's layoutSubviews
fixes it.
这篇关于UITableViewCell 子类布局在禁用自动布局的故事板中搞砸了的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:UITableViewCell 子类布局在禁用自动布局的故事板中搞砸了


基础教程推荐
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01