我有一些代码,创建了一个带滑块的表格单元格。它在iPhone上很容易实现并且可以调整大小。这里稍微对它进行了匿名处理:
UITableViewCell* cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Foo"] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
CGRect contentViewFrame = cell.contentView.frame;
CGRect sliderFrame = CGRectMake(10, 0, 280, contentViewFrame.size.height);
UISlider* slider = [[UISlider alloc] initWithFrame:sliderFrame];
UIImage* minimumImage = [UIImage imageNamed:@"min.png"];
UIImage* maximumImage = [UIImage imageNamed:@"max.png"];
slider.minimumValueImage = minimumImage;
slider.maximumValueImage = maximumImage;
slider.value = 0.5f;
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
[cell.contentView addSubview:slider];
[slider release];
当然,这个尺寸对于iPad不正确。所以我的第一个想法是将`autoresizingMask`属性设置为`UIViewAutoresizingFlexibleWidth`。问题解决了,对吗?不,现在在iPhone上,滑块加图片内容的宽度小于280,所以它不会完全延伸到末尾——最终会短20个像素。在iPad上也是同样的问题——UISlider的宽度会自动调整为比单元格末端短大约20个像素。
也许自动调整大小标志正在关注单元格的不存在的`accessoryView`?我试图将其明确设置为`nil`,但我认为默认情况下它是`nil`,所以没有任何改变。
我希望这个单元格的内容可以自动调整大小,使其成为单元格的“完整”宽度,无论设备和方向如何。有简单的方法可以实现吗?
contentMode
错误了。请参见下面。 - Steven Fisher