如何从UITableViewCell垂直居中我在accessoryView内的内容?内容由动态添加的UISwitch表示,使用:
将宽度和高度调整为50%switchView.transform = CGAffineTransformMakeScale(0.5, 0.5);
有问题的图片是:
答案 0 :(得分:0)
在界面构建器中设置适当的约束:"容器中的垂直中心"。
我不建议减少标准UI元素的大小。
答案 1 :(得分:0)
您无法更改accessoryView
的位置。请参考以下问题:
Can a standard accessory view be in a different position within a UITableViewCell?
您可以将缩放和旋转等变换应用于附件视图。但是,您无法将转换转换应用于附件视图。例如,
switchView.transform = CGAffineTransformTranslate(CGAffineTransformMakeScale(0.5, 0.5),10,10);
仅将转换的比例部分应用于switchView
。仔细阅读Apple文档,我还发现了以下注意事项:
......附件视图显示在单元格的右侧。
我认为苹果不希望您定制配件视图的位置。根据你的问题,我也尝试更改accessoryView的中心和框架,我注意到accessoryView的位置根本没有移动。
简而言之,如果您真的想要更改UISwitch
的大小并将其移动到垂直对齐表格视图单元格中,我认为您只有一个选项:您必须添加{{ 1}}作为单元格的子视图,然后你必须自由地做任何你想做的事情。
答案 2 :(得分:0)
我能做到这一点的最好方法是通过继承UITableViewCell
,并覆盖layoutSubviews
并将accessoryView
定位在那里:
- (void)layoutSubviews {
[super layoutSubviews];
self.accessoryView.frame = CGRectMake(self.accessoryView.frame.origin.x + (self.accessoryView.frame.size.width / 2), (self.frame.size.height - (self.accessoryView.frame.size.height / 2)) / 2, self.accessoryView.frame.size.width, f.size.height);
}
我可能会建议您不要调整Apple预构建的UI组件的大小,特别是因为Apple's Human Interface Guidelines建议:
为可触发控件提供大约44 x 44点的命中目标。
调整大小的开关更小。
尽管如此,我希望这有帮助!