在分组tableView中显示具有不同背景颜色的标签?

时间:2013-06-17 07:18:59

标签: ios objective-c uilabel uitableview

enter image description here

嗨朋友们。我需要在UItableView中显示标签。我怎样才能做到这一点。 请参考屏幕截图。

5 个答案:

答案 0 :(得分:3)

您可以使用UITableViewCell的UITableViewCellStyleValue1样式。使用自定义视图作为节标题。

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    return 22.0f;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{

    UILabel *sectionLabel = [[UILabel alloc]initWithFrame:CGRectZero];
    sectionLabel.backgroundColor = [UIColor purpleColor];//Choose your color
    sectionLabel.textColor = [UIColor whiteColor];
    sectionLabel.font = [UIFont boldSystemFontOfSize:17.0f];
    sectionLabel.text = @"Section Name";

    return sectionLabel;
}

- (UITableViewCell *)tableView:(UITableView *)TableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
        //Default detailTextLabel would have blue text color change it to your choice
        cell.detailTextLabel.textColor = [UIColor darkGrayColor];
    }

    cell.textLabel.text = @"Mobile Number";
    cell.detailTextLabel.text = @"Type";

    return cell;
}

答案 1 :(得分:1)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath {

    static NSString *CellsToBeReused = @"CellsToBeReused";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellsToBeReused];

    if (cell == nil){
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellsToBeReused] autorelease]; 
    }


        UILabel* Label = [[UILabel alloc] initWithFrame:CGRectMake(2,2, 62, 23)];
        [Label setText:@"Text"];
        Label.backgroundColor = [UIColor whiteColor];
        [cell.contentView addSubview:Label];
        [Label release];

        return cell;        

}

答案 2 :(得分:1)

UITableViewDelegate有一个方法 -

(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

您只需返回自定义的UILabel

即可

https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html

答案 3 :(得分:1)

UITableViewCell个对象具有contentView属性。将所有自定义视图添加为subviews的{​​{1}}。 你想要的是contentView。如果你是Google的话,你会发现很多教程和信息。

例如:

  1. Custom UITableViewCell in IB
  2. Custom UITableViewCell Using Interface Builder

答案 4 :(得分:1)

使用UITableView可以更好地完成。 Apple是最好的资源

http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/tableview_iphone/ManageSelections/ManageSelections.html

希望这有帮助!!!