为tableView委托方法自定义UIView

时间:2012-01-30 21:59:39

标签: iphone uitableview

我正在尝试为分组UITableView的标头创建自己的自定义UIView。这是我到目前为止所使用的代码:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    Target *aTarget = [targetDictionary objectForKey:[NSNumber numberWithInteger:section]];
    UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 20, self.TargetTableView.frame.size.width, 20)];
    headerLabel.text = [NSString stringWithFormat:@"%@", aTarget.condition];
    headerLabel.textColor = [UIColor whiteColor];
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.TargetTableView.frame.size.width, 200)];
    headerView.backgroundColor = [UIColor orangeColor];
//    [headerView addSubview:headerLabel];

    return [headerView autorelease];
}

夫妻问题。对于我的headerView,我希望高度为40,但它看起来很小。然后我将它改为60,我看到它在我的UITableView中根本没有改变(我在一个我认为不重要的弹出窗口中提供这些数据)。所以我把高度200做成只是为了看它是否会改变而我的橙色视图很小。可能只有状态栏这么大。

接下来我有UILabel。我希望它能在我的UIView中居中。当我展示它时,它甚至不在我的UIView中。它位于我UITableView的第一行之上。当我用CGRectMake()初始化它时,它是在父视图的坐标中设置它还是将它移开的东西?我试图创建它,一旦我将它添加到我的headerView,我想要定位它。

最后,如果我想在tableView中添加一个简单的背景渐变,我是否只需设置UITableView.backgroundColor = [UIColor clearColor],并将backgroundView设置为渐变?因为它似乎也没有起作用?我只看到分组tableView的默认颜色。感谢。

1 个答案:

答案 0 :(得分:0)

如果在tableview的指定方法tableView:heightForHeaderInSection:中添加高度,则可以解决标题高度的问题。

对于颜色问题,我认为您应该将单元格的背景颜色设置为clearColor,然后您应该能够获得所需的效果。

关于UILabel,使其居中的最佳方法是使其与标题视图的宽度和高度相同,并将其textAlignment属性设置为UITextAlignmentCenter