【发布时间】:2011-03-22 10:49:53
【问题描述】:
我有一些代码可以创建一个带有滑块的表格单元格。它非常简单,并且在 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 上,slider-plus-images 内容的宽度小于 280,因此它不会一直走到尽头——它最终会短约 20 个像素。
在 iPad 上,同样的事情 - UISlider 的宽度会自动调整为距离单元格末尾约 20 个像素。
也许自动调整大小标志正在关注单元格不存在的accessoryView?我尝试将其显式设置为nil,但我认为它默认为nil,所以没有任何改变。
我希望此单元格的内容自动调整为单元格的“完整”宽度,无论设备和方向如何。有没有简单的方法可以做到这一点?
【问题讨论】:
标签: iphone ipad uitableview autoresize