2012-06-12 26 views
5

Tôi đang cố gắng chỉ làm tròn các góc trên cùng bên phải và bên trái của chế độ xem bảng. Tôi đang sử dụng mã bên dưới và dường như chỉ làm tròn góc trên bên trái ...Làm thế nào để chỉ làm tròn các góc trên UITableView?

CAShapeLayer *topLayer = [CAShapeLayer layer]; 
UIBezierPath *roundedPath = 
[UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:UIRectCornerTopRight | UIRectCornerTopLeft cornerRadii:CGSizeMake(9.f, 9.0f)];  
topLayer.path = [roundedPath CGPath]; 
+0

http: // stackoverflow .com/a/5826698/855738 Tôi đã sử dụng câu trả lời này để làm khá nhiều điều tương tự – BBog

+1

Biết một bài đăng cũ của nó nhưng chỉ cần chắc chắn rằng bạn đã có. [tableView.layer setMasksToBound: YES] và nó sẽ là tốt và dandy –

+0

Xem câu trả lời được chấp nhận [ở đây] [1]. Nó có thể là cùng một vấn đề. [1]: http://stackoverflow.com/questions/26934231/uiview-in-cell-cant-round-right-hand-corners –

Trả lời

2

Hy vọng điều này sẽ hiệu quả. Tìm những con đường góc trên cùng để tạo ra một lớp mặt nạ

UIBezierPath *PathToMask; 
PathToMask = [UIBezierPath bezierPathWithRoundedRect:self.testView.bounds 
           byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight) 
             cornerRadii:CGSizeMake(8.0, 8.0)]; 

Tạo một layer hình dạng mặt nạ bằng cách sử dụng UIBezierPath maskPath

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; 
maskLayer.frame =self.testView.bounds; 
maskLayer.path = PathToMask.CGPath; 

thiết lập layer mask maskLayer

self.testView.layer.mask = maskLayer; 
Các vấn đề liên quan