改变在iOS6中分组的uitableview的圆angular半径

我试过使用下面的代码,但没有运气。 有人知道如何在iOS 6中做到这一点? 我不想创build一个自定义单元格。

self.tableView.layer.cornerRadius = 5.0f; [self.tableView setClipsToBounds:YES]; 

编辑:

看来,实际发生的事情是这个代码是为整个视图创build一个angular半径,而不是每个单独的UITableViewSection。 这有道理吗?

我也试过[cell.layer setCornerRadius:3.0]; 但也没有运气。 我的UITableView的angular落仍然是完全一样的。

在这里输入图像说明

您可以更改TableViewCell的de backgroundView,创buildUIView的子类并更改图层类:

 @interface BackgroundView : UIView @end @implementation BackgroundView + (Class)layerClass { return [CAShapeLayer class]; } @end 

稍后在cellForRowAtIndexPath你做这样的事情:

 static NSString *CellIdentifier = @"CustomCell"; CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; CGRect frame = cell.backgroundView.frame; cell.backgroundView = [[BackgroundView alloc] initWithFrame:frame]; CGFloat corner = 20.0f; UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:cell.backgroundView.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(corner, corner)]; CAShapeLayer *shapeLayer = (CAShapeLayer *)cell.backgroundView.layer; shapeLayer.path = path.CGPath; shapeLayer.fillColor = cell.textLabel.backgroundColor.CGColor; shapeLayer.strokeColor = [UIColor lightGrayColor].CGColor; shapeLayer.lineWidth = 1.0f; return cell; 

结果如下:

在这里输入图像说明

你可以修改你想要的angular落或创build另一条path。

我希望它有帮助。

谁说[_tblView.layer setCornerRadius:10.0]; 不在分组样式tableView中工作。

编写这个代码,你将设置setCornerRadius也适用于分组tableView。

 [_tblView setBackgroundView:nil]; [_tblView setBackgroundColor:[UIColor greenColor]]; [_tblView.layer setCornerRadius:10.0]; 

在这里输入图像说明

[_tblView.layer setCornerRadius:10.0]; 不会为tableView的特定段创build拐angular半径,这是设置整个tableView的拐angular半径。

而不是设置单元格的angular落半径,请为cell.contentview设置半径,如下所示:

 cell.contentView.layer.cornerRadius = 10.0f; cell.contentView.layer.borderColor = [UIColor blackColor].CGColor; cell.contentView.layer.borderWidth = 3.0f; 

在初始化单元时放置上面的代码。

将quartzcore框架添加到您的项目

 import QuartzCore/QuartzCore.h to your .h file 

self.tableView.layer.cornerRadius = 5.0f;

我想你错过了这行代码:

 [self.tableView.layer setMasksToBounds:YES]; 

首先,你需要使用QuartzCode框架导入框架和声明.h文件你想要设置图层效果的类。

并添加该方法

 myTableView.layer.cornerRadius=5; [myTableView setClipsToBounds:YES]; 

如果你想设置angular落radious到单元格也试过这个代码

UITableViewCell.layer是一类CALayer和CALayer类有一个属性叫cornerRadius。 所以你设置单元格的angular落半径为休闲:

 [cell.layer setCornerRadius:3.0]; 

试试这个代码。

你可以这样做。 它为我工作

  UILabel *delLbl = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 300, 44)]; delLbl.font = [UIFont fontWithName:@"Arial-BoldMT" size:18]; delLbl.layer.cornerRadius = 10.0f; delLbl.layer.borderWidth = 1.0f; delLbl.layer.borderColor = [UIColor grayColor].CGColor; delLbl.text = @"Cell Text"; delLbl.textAlignment = NSTextAlignmentCenter; [cell.contentView addSubview:delLbl]; cell.backgroundView = [[UIView alloc] initWithFrame:CGRectZero]; Return Cell; 

我认为PrettyKit是你正在寻找的。 完全可定制和快速。 https://github.com/vicpenap/PrettyKit给它一个去。 应该适当地做好工作。

将此添加到您的.h文件

 #import <QuartzCore/QuartzCore.h> 

并在你的代码中使用下面,

 tblView.layer.cornerRadius=5.0f; 

尝试这个:-

 tableView.layer.cornerRadius=5.0f;