UITableViewCell AccessoryView无法正常显示

时间:2015-04-19 17:51:51

标签: ios objective-c uitableview

我在附件视图中有一个带UISwitch的UITableviewCell,它在运行时正确显示,但是一旦我旋转设备,开关就不再在正确的位置。 the wrong place for accessoryView

我可以使用约束而不使用accessoryView,但我想我可以使用这个字段.. 有没有人有想法?

谢谢!

编辑: 这是Interface Builder中的配置: enter image description here

编辑2: 我使用了自定义单元格: enter image description here

初始化默认属性:

self.textLabel.font = [UIFont preferredDynamicFontForTextStyle:UIFontTextStyleBody fontSize:16.0];
self.backgroundColor = self.contentView.backgroundColor;

self.textLabel.text = item.title;
self.selectedImage = item.imageSelected;
self.unselectedImage = item.image;
self.imageView.image = self.unselectedImage;
// if I do it programmatically
self.accessoryView = [[UISwitch alloc] init];

我根本没有设置约束,因为我使用默认属性..

4 个答案:

答案 0 :(得分:2)

我和你有同样的问题。

以下是我的观察:

  • 如果您按代码设置accessoryView,则无论是否在iOS 7和iOS 8上都选择了单元格,它总是正常的。
  • 如果您通过IB设置accessoryView,则在第一次选择单元格后,accessoryView将移至左上角,仅在iOS 8 上移动。

我不知道问题是来自IB还是单元格在iOS 8上布局附件视图的方式,但到目前为止解决方法很简单:始终按代码设置accessoryView以避免意外行为。

答案 1 :(得分:0)

我可以肯定地说你的约束没有正确设置。但是,如果没有看到故事板的限制,就没有办法说出什么是肯定的。

答案 2 :(得分:0)

如果您使用autolayout(可能),则应首先设置约束

答案 3 :(得分:0)

如果您在代码中创建accessoryVieweditingAccessoryView并设置它,看起来一切都很棒!

如果您尝试在UIStoryBoard中设置它们,UITableViewCell会在第一次消失后删除constraints,而将不会加回来。这是一个耻辱,但希望他们在以后的版本中改变它。

希望有帮助!