2016-04-02 7 views
1

Ich habe eine UITableView mit UITableViewCell und ich möchte cell.imageView als Kreise machen. Also tat ich dies in meinem cellForrowAtIndexUITableViewCell Kreis Bildansicht

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *simpleTableIdentifier = @"SimpleTableCell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 


    if (cell == nil) { 

     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:simpleTableIdentifier]; 




    } 

    cell.backgroundColor=[UIColor clearColor]; 

    cell.imageView.layer.cornerRadius=cell.imageView.frame.size.width/2; 
    cell.imageView.layer.masksToBounds=YES; 
    cell.imageView.layer.borderWidth = 2.0f; 
    cell.imageView.layer.borderColor=[UIColor whiteColor].CGColor; 

Aber wenn die Last die Tabellen UIImage s Quadrate sind und dann, wenn ich es Kreise geworden blättern. Wie kann ich dieses Problem lösen? Bitte helfen Sie mir. Danke

Antwort

0

Sie müssen eine benutzerdefinierte Zelle erstellen, indem Sie UITableViewCell erben und dann Zelle in dieser Klasse konfigurieren.

Implementieren Sie awakeFromNib Methode darin und legen Sie Ihre Bildansicht, wie Sie in dieser Methode benötigen.

+0

Dies war die einzige Option für mich – user1960169

0

Verwenden Sie unter der Codezeile in Ihrer CellForRow-Methode. Für den Kreis müssen Sie den Eckradius der Ebene festlegen und die Eigenschaft clipsToBounds auf YES setzen.

+0

nicht seine noch gleiche ,, wenn die Last alle Quadrate, wenn blättern sie Kreise werden nur – user1960169

+0

Have schrieb, dass 'cell.imageView.clipsToBounds = zu bejahen ist; in Zelle für Row-Methode? –

1

Unten ist der Code

[cell.imgview setImage:[UIImage imageWithData:imgData]]; 
cell.imgview.layer.cornerRadius = cell.img_userpic.frame.size.height /2; 
cell.imgview.layer.masksToBounds = YES; 
cell.imgview.layer.borderWidth = 0; 

Ihre Bildansicht Breite und Höhe sollten gleich sein sonst wird es nicht Kreis angezeigt werden soll.

0

versuchen diesen Code

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(-30, 40, 100, 100)]; 
     imageView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; 
     imageView.layer.masksToBounds = YES; 
     imageView.layer.cornerRadius = 50.0; 
     imageView.layer.shadowRadius=5; 
     imageView.layer.shadowOpacity=4; 
     imageView.layer.shadowColor=(__bridge CGColorRef)([UIColor blackColor]); 
     imageView.layer.borderColor = [UIColor whiteColor].CGColor; 
     imageView.layer.borderWidth = 3.0f; 
     imageView.layer.rasterizationScale = [UIScreen mainScreen].scale; 
     imageView.layer.shouldRasterize = YES; 
     imageView.clipsToBounds = YES;