2014-12-04 31 views
5

Tôi đã tìm kiếm xung quanh và vẫn không thể có vẻ để có được quyền này. Tôi đang cố gắng để đạt được một hình ảnh tròn trong iOS 8. Trước khi Xcode 6, tôi nghĩ rằng câu trả lời sẽ là tài sản imageView.layer.cornerRadius. Tôi đã thử này nhưng trong Xcode 6 và iOS 8 bây giờ sử dụng Auto Layout, mà tôi nghĩ là gây ra vấn đề, nó dường như không hoạt động chính xác. Hình dạng không xuất hiện như một vòng tròn nhưng như một số mắt nhìn hình dạng hoặc một hình bầu dục bị biến dạng, nó không bao giờ là một vòng tròn hoàn hảo. Có cách nào khác để đạt được điều này vẫn còn với Autolayout?Thông tư ImageView iOS 8/Xcode 6

+2

GócRadius phải bằng một nửa chiều rộng/chiều cao làm hình tròn. –

+0

Áp dụng các ràng buộc về kích thước, ví dụ chiều rộng và chiều cao của imageView và đặt gócRadius = width/2. ImageView sẽ là một vòng tròn nếu chiều rộng = chiều cao. – zaheer

+0

http://stackoverflow.com/a/27222863/3767017 (thuộc tính lớp u cũng có thể thay đổi hình học) và http://stackoverflow.com/a/25616952/3767017 và thận trọng về khung hình ảnh của bạn. –

Trả lời

3

Kiểm tra chiều cao và chiều rộng của UIImageView. Nó sẽ giống nhau. Nếu họ không làm được. Sau đó

imageView.layer.cornerRadius = imageView.frame.size.width/2; 

hay

imageView.layer.cornerRadius = imageView.frame.size.height/2; 

Cả hai dòng làm việc cho bạn.

+1

bạn cũng nên đặt clipToBounds thành true. – tounaobun

2

Tôi đang sử dụng Xcode6 và kiểm tra bằng ios8.

Số lần xem hình ảnh heightwidth của bạn sẽ giống nhau.

Mã bên dưới hoạt động tốt cho tôi.

yourImageView.layer.cornerRadius = img.frame.size.height /2; 
yourImageView.layer.masksToBounds = YES; 
yourImageView.layer.borderWidth = 0.1; 

Hy vọng nó cũng phù hợp với bạn.

1

Hãy thử mã này, bán kính góc phải bằng một nửa chiều rộng hoặc chiều cao của chế độ xem ảnh được cung cấp và phải có hình vuông.

Vì vậy, mã đi như thế này

[self.photoView.layer setCornerRadius:CGRectGetHeight(self.photoView.frame)/2]; 
[self.photoView.layer setMasksToBounds:YES]; 

Cũng làm việc ios tốt 6 trở lên bao gồm ios 8.

0

Triển khai mã sau nó sẽ giải quyết vấn đề của bạn.

self.imageView.layer.cornerRadius = self.imageView.frame.size.width/2; 
self.imageView.clipsToBounds = YES; 

Nếu đó là vấn đề của AutoLayout. Xóa các ràng buộc, đặt trên khoảng cách và đánh dấu vào Aspect ratio.