如何设置UITableView标题视图的宽度?

时间:2012-03-16 22:14:20

标签: iphone ios ipad uitableview

有没有办法将UITableView部分标题视图的宽度设置为小于UITableView的整个宽度?现在我设置tableView:viewForHeaderInSection:返回的视图有多宽,标题视图被拉伸到UITableView的宽度。

这是我的代码:

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
  UIView *label = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 50, 50)];
  label.backgroundColor = [UIColor yellowColor];
  label.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
  return label;
}

3 个答案:

答案 0 :(得分:3)

试试这个。如果我理解了你的问题,那肯定会对你有用

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 30, 60)];
    headerView.backgroundColor = [UIColor clearColor];

    UIView *label = [[UIView alloc] initWithFrame: CGRectMake(0,0, 50, 50)];
    label.backgroundColor = [UIColor yellowColor];
    label.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;

    [headerView addSubview:label];
    return headerView;
}

答案 1 :(得分:2)

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

{
    int aSection = [[self.sectionsToDisplay objectAtIndex:section] integerValue];

   if([[self.groupHeadings objectAtIndex:aSection] isEqualToString:@""])

        return nil;

    return [self.groupHeadings objectAtIndex:aSection];

}

答案 2 :(得分:0)

简单解决方案:返回一个UIView,其中只包含您想要的标题视图,同时为您的headerView提供UIViewAutoresizing属性灵活的右边距,因此它不会随着它的超级视图(或者可能是灵活的左边距)缩放,或者两者,取决于你想要的loomk;])。