UITableView有自定义标题UIView ,其中包含UILabel。由于表格右侧还有分段索引,我希望将标签置于剩余空间中。
问题是当设备旋转到横向时,如何以相同的方式“居中”标签!我已经尝试过Interface Builder和仅代码,而且总是出错。
限制:
解决这个问题的一种简单方法是将section header视图从tableView右侧分离。试图这样做,失败了。以下是 viewForHeaderInSection :
中的一些代码CGRect frame = CGRectMake(0, 0, tableView.bounds.size.width - 32, 50.0f);
// MAGIC 32 for SectionIndexTitles
UIView *view = [[[UIView alloc] initWithFrame:frame] autorelease];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
label.font = [UIFont fontWithName:@"Courier" size:20];
label.text = @"Section title long";
label.textAlignment = UITextAlignmentCenter;
label.backgroundColor = [UIColor redColor];
CGSize labelSize = [label.text sizeWithFont:label.font
constrainedToSize:frame.size
lineBreakMode:UILineBreakModeClip];
label.frame = CGRectMake(0, 0, labelSize.width, labelSize.height);
label.center = CGPointMake(frame.size.width/2.0f, kHeaderHeight/2.0f);
label.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
欢迎任何想法!甚至不记得我失败的方式有多少:)
答案 0 :(得分:0)
应该做的工作:)
要支持神奇的32像素,请尝试根据需要定位标签。 这意味着: 将它放在你的UIView的中心并向左移动16个像素,现在不要以编程方式改变帧,否则“精彩”的自动位置将被操纵我们真正不想要的东西:)