0
UITableView有自定义标题UIView,其中包含UILabel。由于表格的右侧也有段索引,我想将标签居中放置在剩余空间中。如何旋转viewForHeaderInSection
问题是如何为“中心”的标签,同样,当设备旋转到的风景线!我已经尝试了Interface Builder和仅限代码,并且总是有错误。
限制:
- 标签是尽可能地窄
- 标签不能被调整大小
- 标签必须表宽度减去区段索引
一个简单的内部总是居中方法来解决这个问题将使节标题视图从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;
任何想法表示欢迎!甚至无法回想有多少种不同的方式,我失败了:)
不,相对位置保持不变,但在整个UIView内。我需要UIView中的MINUS 32为节索引保留的魔法像素... – JOM 2011-03-30 13:34:46
标签宽度是动态的,我不知道它是什么。因此,必须在代码中调整标签框以最大限度地减少它... – JOM 2011-03-30 14:02:19
一方面,您写的“标签不得调整大小”,另一方面,宽度是灵活的:/您是否设置了柔性宽度 - “箭头”在界面生成器中?否则写在你的代码:'label.autoresizingMask = UIViewAutoresizingMaskFlexibleWidth'不灵活的左或右 – Lepidopteron 2011-03-30 14:06:52