2016-08-12 3 views
0

시도가 다른있는 UIImageView에 따라 둥근있는 UIImage 얻을 :둥근 된 UIImage를 클립하기 위해 UIImageView 경계를 크기를 조정하는 방법?

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의 "배경 이미지 설정"또는 "이미지 설정"중 하나입니다. 후자는 여기서 더 잘 작동합니다. 배경 이미지를 설정하면 이미지의 크기를 잘 처리 할 수없는 것 같습니다. 더 나은 방법이 있다고 생각합니다. 이미지를 설정하는 것은 위의 경우 더 쉽습니다.