在iphone中查看tableview

时间:2011-09-19 14:32:51

标签: iphone xcode uitableview

我有UITableView设置了属性Grouped。它看起来像带有圆边。这很棒。

enter image description here

一旦我开始滚动UITabelView,圆边就会消失,看起来像这样:

enter image description here

圆边消失了!

我该如何处理呢?当我向上和向下滚动UITableView时,圆边会像第一张图片一样保留?

问的相关代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
     return 1;
}

// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
     return [nameCatalog count];
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];

        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        cell.backgroundColor = [UIColor clearColor];
        cell.selectionStyle = UITableViewCellSelectionStyleGray;
        cell.backgroundView.opaque = NO;

        cell.textLabel.backgroundColor = [UIColor clearColor];
        cell.textLabel.opaque = NO;
        cell.textLabel.textColor = [UIColor whiteColor];
        cell.textLabel.highlightedTextColor = [UIColor whiteColor];
        cell.textLabel.font = [UIFont boldSystemFontOfSize:18];

        cell.detailTextLabel.backgroundColor = [UIColor clearColor];
        cell.detailTextLabel.opaque = NO;
        cell.detailTextLabel.textColor = [UIColor whiteColor];
        cell.detailTextLabel.highlightedTextColor = [UIColor whiteColor];
        cell.detailTextLabel.font = [UIFont systemFontOfSize:14];
    }

    [[cell textLabel] setText:[[nameCatalog objectAtIndex:indexPath.row] valueForKey:@"name"]];
    return cell;
}



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSString *escapedString = [[[nameCatalog objectAtIndex:indexPath.row] valueForKey:@"url"]      stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *url=[NSURL URLWithString:escapedString];

    [webView loadRequest:[NSURLRequest requestWithURL:url]];


    [self.view addSubview:webView];
    [self.navigationController pushViewController:webView animated:YES];
    [webView setHidden:NO];
    UIBarButtonItem *infoButton = [[UIBarButtonItem alloc] 
                                   initWithTitle:@"Retour" style:UIBarButtonItemStyleBordered target:self action:@selector(tableRetour:)];

    self.navigationItem.leftBarButtonItem = infoButton;
    [self.view addSubview:webView];

}

3 个答案:

答案 0 :(得分:3)

那是因为在第一张图片中你看到分组tableView中的顶行是圆形的,但只有顶行和底行是这样的圆形,所以滚动时你会看到正常的中间行。 / p>

答案 1 :(得分:1)

这就是分组表的工作原理。它是每个圆角的圆角,而不是表视图本身的角。看看“设置”应用,您会看到每个组的角都是圆角的;你会在应用中看到的设置中看到基本相同的东西,除了设置中的表视图的边界对应于滚动视图的边界。简而言之,您的表视图按设计工作。

如果您希望桌面可见部分的角落始终呈圆角,您可以查看围绕桌面视角的角落。一种方法是设置底层的cornerRadius属性:

myTableView.layer.cornerRadius = 10.0;

如果您尝试这种方法,您可能还需要指定图层的边框宽度和颜色。

答案 2 :(得分:0)