Sha*_*rog 13 iphone uitableview autoresize ipad
我有一些代码创建一个带滑块的表格单元格.它非常简单,在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默认的,所以没有任何改变.
我希望这个单元格的内容自动调整为单元格的"全"宽度,无论设备和方向如何.是否有捷径可寻?
bio*_*ffe 10
它完全按照你描述的方式工作.我倾向于认为这是iOS错误.在iPAD上创建新的UITableViewCell时,其宽度设置为320.硬编码(!)视图和contentView.如果设置为,则不会正确调整大小UIViewAutoresizingFlexibleWidth.我把它设置为view.frame.size.width/2,结果很有趣:在iPhone上它是160,在iPad上它是608!
我最终手动调整了我的单元格及其内容的大小.
有点迟了但我今天找到了同样问题的解决方案,但你需要创建一个自定义的UITableViewCell.然后你可以覆盖这个功能
- (void) layoutSubviews
{
    [dateLabel setFrame:CGRectMake(10.f, 16.f, 80.f, 12.f)];
    [textLabel setFrame:CGRectMake(106.f, 16.f, contentView.frame.size.width-105.f + 1.f, 12.f)];
}
在该函数中,self.frame.size.width是实际的.
它也适用于设备的旋转.
您应该能够告诉调整大小系统将对象“粘贴”到距右边缘固定的距离(在该位置调整大小不够远)。如果您尝试使用 IB,您可以创建一个调整宽度大小并固定在右侧的视图。
您是否也设置了 UIViewAutoresizingFlexibleRightMargin ?
| 归档时间: | 
 | 
| 查看次数: | 20886 次 | 
| 最近记录: |