2013-04-19 37 views
8

Hey tất cả Tôi đang cố gắng để thiết lập cell.imageView 's cornerRadius, nhưng nó không có vẻ làm việc.iOS UITableViewCell cell.imageView thiết lập góc tròn

cell.imageView.layer.cornerRadius=9; 

Nó có hoạt động hoặc tôi nên thêm UIImageView tùy chỉnh trong ô để làm tròn góc?

Tôi cũng đã cố gắng này

cell.imageView.layer.borderWidth=2; 
cell.imageView.layer.borderColor=[[UIColor blackColor]CGColor]; 

Nhưng nó cũng dường như không làm việc. Có ai phải đối mặt với một vấn đề tương tự?

+4

bạn cần phải thiết lập 'masksToBounds' là tốt. Bạn đã đọc tài liệu 'CALayer' chưa? – Desdenova

+0

@Desdenova Xin lỗi tôi đã quên một điều cơ bản, cảm ơn :). – satheeshwaran

Trả lời

27

Đầu tiên add Framework -> QuartzCore.framework để dự án của bạn
sau đó nhập khẩu tập tin tiêu đề trong tệp ViewController.m bạn

#import <QuartzCore/CALayer.h> 

Add sau mã trong cellForRowAtIndexPath phương pháp của bạn:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    NSString *cellIdentifier = @"TableViewCell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 

    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 

     // Rounded Rect for cell image 
     CALayer *cellImageLayer = cell.imageView.layer; 
     [cellImageLayer setCornerRadius:9]; 
     [cellImageLayer setMasksToBounds:YES]; 
    }         

    cell.imageView.image = [UIImage imageNamed:@"image_name.png"]; 

    return cell; 
} 
+3

Cảm ơn, tôi vừa bỏ lỡ setMasksToBounds. Thực hiện một sai lầm khủng khiếp. – satheeshwaran