2013-07-03 9 views
0

Я добавил круглый угол в UItableView, но только в верхних углах. Проблема в том, что когда я использую маску в UItableView, UItableView отображает только первые 4 ячейки.Круглые верхние углы в UITableView

Когда я комментирую код с маской, то TableView отлично работает ..

Вот мой код:

UIBezierPath *maskPath; 
maskPath = [UIBezierPath bezierPathWithRoundedRect:_tbFeeds.bounds byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight) cornerRadii:CGSizeMake(9.0, 9.0)]; 

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; 
maskLayer.frame = _tbFeeds.bounds; 
maskLayer.path = maskPath.CGPath; 
_tbFeeds.layer.mask = maskLayer; //tbfeeds is my tableview 
[maskLayer release]; 
+0

Похоже на точный дубликат [этого вопроса] (http://stackoverflow.com/questions/17451438/uitableview-doesnt-work-fine-when-i-use-mask) с одного и того же плаката. –

ответ

0

способ сделать это было бы добавить заголовок к Tableview:

- (void)loadView { 
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 10)]; // height of header (10) 
    [headerView setBackgroundColor:[UIColor whiteColor]]; // color of header (white) 

    UIBezierPath *maskPath; 
    maskPath = [UIBezierPath bezierPathWithRoundedRect:headerView.bounds byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight) cornerRadii:CGSizeMake(5.0, 5.0)]; 

    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; 
    maskLayer.frame = headerView.bounds; 
    maskLayer.path = maskPath.CGPath; 
    headerView.layer.mask = maskLayer; 

    self.tableView.tableHeaderView = headerView; 
} 
-2

Пожалуйста, изучите приведенные ниже ссылки для вашего запроса:

https://gist.github.com/robin/62684