如何创建如下所示的表

时间:2012-03-28 07:20:56

标签: iphone xcode uitableview cocoa-touch uikit

我创建了一个TableView(分组表视图)。我可以在表格视图中列出项目。但我想知道下表是如何显示的enter image description here

像Calender在左侧,而Gregorian在右侧? Gregorian如何在右侧显示?它是自定义TableView,任何人都可以帮助我如何实现这一目标吗?

3 个答案:

答案 0 :(得分:10)

这些只是包含style = UITableViewCellStyleValue1accessoryType = UITableViewCellAccessoryDisclosureIndicator的常规单元格。

以编程方式制作一个:

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"YourIdentifier"];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

(请注意,在现实生活中,您可能会尝试dequeueReusableCellWithIdentifier:,并且仅在返回nil时才创建新单元格。)

或者,如果您正在使用IB,请将“Style”设置为“Right Detail”,将“Accessory”设置为“Disclosure Indicator”。

答案 1 :(得分:1)

您需要使用以下代码帮助您

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
        cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
        UIImageView *v = [[[UIImageView alloc] init]autorelease];
        v.backgroundColor = [UIColor clearColor]; // put clear color
        [v setClipsToBounds:YES];
        cell.selectedBackgroundView = v;
        [cell setClipsToBounds:YES];
    }
    UIImageView *imgVBG=(UIImageView*)[cell selectedBackgroundView];
    if(indexPath.row==0){
        imgVBG.image=[UIImage imageNamed:@"TopImg.png"];
    } else if((indexPath.section==0 && indexPath.row==4)||(indexPath.section==1 && indexPath.row==7)){
        imgVBG.image=[UIImage imageNamed:@"BottomImg.png"];
    } else {
        imgVBG.image=[UIImage imageNamed:@"MiddleImg.png"];
    }
}

答案 2 :(得分:-2)