所以我有一个 UITableView ,它的所有单元格都是用 UITableViewCellStyleValue1 渲染的。
这种风格在 cell.indentationLevel
中对我很有用现在我需要在单元格中显示 UISwitch 而不是 detailTextLabel 。我开始在 cellForRowAtIndexPath 工作,这是我的代码。
UISwitch *switchField = [[UISwitch alloc] init];
switchField.frame = CGRectMake(tableView.bounds.size.width - 194, 8, 94, 27);
switchField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
switchField.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
[cell.contentView addSubview:switchField];
一开始效果很好,但每当我旋转设备时,Switch的界限都保持不变。我想通过在 cell.contentView 中添加 UIView ,只要需要就可以进行对齐。
为了实现我想要的目标,我应该做些什么,而不是其他什么?
感谢。
答案 0 :(得分:0)
你可以尝试:
switchField.autoresizingMask = UIAutoresizingMaskFlexibleLeft | UIAutoresizingMaskFlexibleRight;
或者只是其中一个:
switchField.autoresizingMask = UIAutoresizingMaskFlexibleLeft;
switchField.autoresizingMask = UIAutoresizingMaskFlexibleRight;
失败....你可以继承UITableViewCell,使swithField全局并覆盖layoutSubviews:
- (void)layoutSubviews {
[super layoutSubviews];
switchField.frame = CGRectMake(tableView.bounds.size.width - 194, 8, 94, 27);
}
希望这有帮助。