我尝试过使用以下代码,但没有运气。有谁知道在iOS 6中如何做到这一点?我不想要创建一个自定义单元格。
self.tableView.layer.cornerRadius = 5.0f;
[self.tableView setClipsToBounds:YES];
修改
看来实际发生的是这段代码为整个视图创建了一个角半径,而不是每个单独的UITableViewSection。这有意义吗?
我也试过[cell.layer setCornerRadius:3.0];
但也没有运气。我的UITableView的角落仍然完全相同。
答案 0 :(得分:19)
您可以更改TableViewCell的de backgroundView,创建UIView的子类并更改图层类:
@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;
结果:
您可以修改所需的角落或创建另一条路径。
我希望它有所帮助。
答案 1 :(得分:4)
谁说[_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的特定部分创建角半径,这是用于设置整个tableView的角半径。
答案 2 :(得分:3)
将此添加到您的.h文件
#import <QuartzCore/QuartzCore.h>
在下面的代码中使用
tblView.layer.cornerRadius=5.0f;
答案 3 :(得分:3)
而不是设置单元格的圆角半径,设置cell.contentview的半径,如下所示:
cell.contentView.layer.cornerRadius = 10.0f;
cell.contentView.layer.borderColor = [UIColor blackColor].CGColor;
cell.contentView.layer.borderWidth = 3.0f;
在初始化单元格时输入上面的代码。
答案 4 :(得分:2)
将quartzcore框架添加到您的项目中
import QuartzCore/QuartzCore.h to your .h file
self.tableView.layer.cornerRadius = 5.0f;
答案 5 :(得分:2)
我认为你错过了这行代码:
[self.tableView.layer setMasksToBounds:YES];
答案 6 :(得分:2)
首先你需要使用QuartzCode框架导入框架和声明.h文件你想要设置图层效果的类。
添加该方法
myTableView.layer.cornerRadius=5;
[myTableView setClipsToBounds:YES];
如果你想将角落radious设置为cell也试过这段代码
UITableViewCell.layer是一种类CALayer,CALayer类有一个名为cornerRadius的属性。所以你将细胞的角半径设置为休闲:
[cell.layer setCornerRadius:3.0];
试试这段代码。
答案 7 :(得分:2)
你可以做到这一点。它为我工作
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;
答案 8 :(得分:2)
我认为PrettyKit正是您所寻找的。完全可定制和快速。 https://github.com/vicpenap/PrettyKit试一试。应该正常工作。
答案 9 :(得分:1)
试试这个: -
tableView.layer.cornerRadius=5.0f;