UITableViewCell - 使用UITableViewCellStyle时添加子视图

时间:2011-07-05 14:14:32

标签: iphone objective-c ios ipad xcode4

所以我有一个 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 ,只要需要就可以进行对齐。

为了实现我想要的目标,我应该做些什么,而不是其他什么?

感谢。

1 个答案:

答案 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);
}

希望这有帮助。