2016-08-12 5 views
0

は別のUIImageViewに基づいて丸いUIImageを取得してください:丸みを帯びたUIImageをクリップするにはUIImageView Boundsのサイズを変更するにはどうすればいいですか?

1)と呼ばれるUIImageView:

@interface CompetitorAnalysisViewController() 
@property (weak, nonatomic) IBOutlet UIImageView *submitImageButton; 
@end 

2)UIImageラウンド:

UIImage *chosenImage = info[UIImagePickerControllerEditedImage]; 
// Round the image 
UIImage *roundedChosenImage = [self getRoundedRectImageFromImage:chosenImage onReferenceView:_submitImageButton withCornerRadius: _submitImageButton.frame.size.width/2]; 

3)をどのように丸めますUIImage:

- (UIImage *)getRoundedRectImageFromImage :(UIImage *)image onReferenceView :(UIImageView*)imageView withCornerRadius :(float)cornerRadius 
{ 
    UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 0); 
    [[UIBezierPath bezierPathWithRoundedRect:imageView.bounds 
          cornerRadius:cornerRadius] addClip]; 
    [image drawInRect:imageView.bounds]; 
    UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return finalImage; 
} 

問題:

UIImage(UIImageViewではなく)を丸めて丸くしたいと思っています。しかし、私が今得た丸いUIImageは私が望むよりも大きいです。

"imageView.bounds"のサイズを何らかの方法で変更する必要がありますか?比例的にサイズを変更することができれば素晴らしいことでしょう。

これを達成するための他の方法がありますか?

+0

あなたは正しい軌道に乗っていると思います。単に 'imageView.bounds'のサイズを変更し、' drawInRect'を実行すると、あなたが望むサイズになります。 – brandonscript

+0

@brandonscript私はobjective-cに新しい人物で、オンラインで検索しましたが、実際にimageView.boundsのサイズを変更する方法は見つかりませんでした。 –

+0

'imageView.bounds = CGRectMake(X、Y、L、W)'はそれを行うべきです – brandonscript

答えて

0

@brandonscriptのおかげで、私は最終的にこれを行う方法を考え出しました。

UIImage *chosenImage = info[UIImagePickerControllerEditedImage]; 

// Create a reference ImageView 
UIImageView *referenceImageView =[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 135, 135)]; 
// Round the image 
UIImage *roundedChosenImage = [self getRoundedRectImageFromImage:chosenImage onReferenceView:referenceImageView withCornerRadius: referenceImageView.frame.size.width/2]; 

[choosePhotoButton setImage:roundedChosenImage forState:UIControlStateNormal]; 
[picker dismissViewControllerAnimated:YES completion:NULL]; 

非常に難しいのは、UIButtonの「背景イメージを設定する」か「イメージを設定する」かどうかです。後者はここでうまくいく。背景画像を設定すると、画像の尺度をうまく処理できないように思えますが、それをうまくやる方法があると信じています。上記の場合、画像を設定する方が簡単です。

関連する問題