【发布时间】:2014-02-18 02:03:37
【问题描述】:
我在 Storyboard 中创建了一个表格视图,其中的原型单元格在 Xcode 5 中未选中“使用自动布局”。
单元格是UITableViewCell的子类,主要是添加IBOutlets,里面没有代码。结果是混乱的布局。我尝试更改 Autoresizing 蒙版,但没有成功。也试过this。
如果我实现一个空的layoutSubviews,它会显示正常。知道发生了什么吗?
是auto layout still enabled 尽管取消选中它?
编辑:
更多细节...
@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
禁用自动布局的故事板:
不使用上述layoutSubviews 修复时的结果:
编辑 2:
- 单元格设置为不自动调整子视图大小。
- 虽然以上内容足以防止子视图自动调整,但所有自动调整大小的蒙版都设置为仅灵活的右边距和下边距。
- 只有 > 标记设置为灵活左边距。没有灵活的宽度或高度。
【问题讨论】:
-
这个问题有点无意义。我从来没有遇到过 UITableViewCell 子类和布局的任何问题,所以我无法猜测你的问题是什么。你对你所做的事情的细节很少,所以我不可能重现这个问题。
-
没有太多细节,因为正如我所说的子类代码是空的,所以没有必要发布。如果您阅读链接中的问题,您会发现 UITableView 单元格在不同的 iOS 版本中有许多怪癖。在我的情况下,即使在 IB 中未选中 autoLayout,它似乎也处于活动状态。
-
如果您认为问题与 iOS 版本有关,为什么不提一下呢?您并没有真正解释视图是如何混乱的。您没有提供单元格在故事板中的外观与运行时的外观的图片。我的意思是,这里什么都没有。没有什么可以重现问题。
-
添加了图片,但基本上都已经描述过了。
-
我能看到的唯一问题是 > 在左边而不是右边。对吗?
标签: ios objective-c uitableview autolayout