2016-04-25 17 views
0

Ich muss UIImageView im Kreisradius machen, ich benutze diesen Codeblock für diese Taks.Wie man uiimageview Kreis machen.?

-(void)viewWillAppear:(BOOL)animated { 

    [self performSelector:@selector(setStyleCircleForImage:) withObject:_imageview afterDelay:0]; 

    [super viewWillAppear:YES]; 
} 

-(void) setStyleCircleForImage:(UIImageView *)imgView { 

    imgView.layer.cornerRadius = _imageview.frame.size.height/2.0; 
    imgView.clipsToBounds = YES; 
} 

Seine Arbeit perfekt in iOS 5 aber als Test in einem anderen Gerät es Formänderung ist, ich weiß nicht, warum es passiert. Bitte machen Sie etwas Hilfe.

+1

Zwei Regeln 1. Die Breite und Höhe der Komponente sollte gleich sein. 2. In Ihrem Fall wird der Rahmen möglicherweise nicht aktualisiert, versuchen Sie, 'viewWillLayoutSubviews' zu setzen, es sollte funktionieren. – iphonic

+0

ok sir ich habe versucht, es zu implementieren –

+0

imgView.layer.cornerRadius = imgView.frame.size.width/2.0; versuchen Sie dies –

Antwort

1

Bessere Maske zu verwenden Kreis wie diese Funktion

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self makeCircleImage: _imageview]; 
} 

    -(void)makeCircleImage:(UIImageView *)img{ 
     CGFloat img_width = img.bounds.size.width; 
     UIGraphicsBeginImageContextWithOptions(CGSizeMake(img_width,img_width), NO, 0); 
     CGContextRef c = UIGraphicsGetCurrentContext(); 
     CGContextSetFillColorWithColor(c, [UIColor blackColor].CGColor); 
     CGContextFillEllipseInRect(c, CGRectMake(0,0,img_width,img_width)); 
     UIImage* maskim = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 

     CALayer* mask = [CALayer new]; 
     mask.frame = CGRectMake(0,0,img_width,img_width); 
     mask.contents = (id)maskim.CGImage; 

     img.layer.mask = mask; 
    } 
+0

danke sir Ich habe versucht, Ihre Lösung hier zu implementieren –

+0

ja, ich warte nur ich min arbeite ich daran –

+0

Wie werde ich zwischen meinem Image-Namen diese Methode korrelieren? –

0

Try This

yourImageView.layer.cornerRadius = yourImageView.frame.size.width/2; 
yourImageView.layer.masksToBounds = YES; 
+0

sollte ich diesen Code in viewdidload Methode setzen? –

+0

ja. Sie müssen in viewDidLoad hinzufügen. Warum verwenden Sie Selectror? – Vvk

+0

@sandeeptomar Sie müssen 'mascepsToBounds' anstelle von 'clipsToBounds' verwenden – Vvk

0

Zuerst geben equal width und equal height für UIImageView, dann nutzen, um es

imgView.layer.cornerRadius = imgView.frame.size.height/2.0; 

imgView.layer.masksToBounds = YES; 
+0

Ich löse mein Problem durch die Antwort von EI Captain. Danke für die Unterstützung, Sir –

Verwandte Themen