[ios] 신속하게 원 안에 이미지를 설정하는 방법

신속하게 서클 사진을 만들려면 어떻게해야합니까?

내 ViewController :

import UIKit
import Foundation

class FriendsViewController : UIViewController{

    @IBOutlet weak var profilPicture: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        profilPicture = UIImageView(frame: CGRectMake(0, 0, 100, 100))
    }
}

profilPicture = UIImageView(frame: CGRectMake(0, 0, 100, 100))..

예 : http://www.appcoda.com/ios-programming-circular-image-calayer/



답변

import UIKit

class ViewController: UIViewController {
  @IBOutlet weak var image: UIImageView!

  override func viewDidLoad() {
    super.viewDidLoad()

    image.layer.borderWidth = 1
    image.layer.masksToBounds = false
    image.layer.borderColor = UIColor.black.cgColor
    image.layer.cornerRadius = image.frame.height/2
    image.clipsToBounds = true
}

확장에 원하는 경우

import UIKit

extension UIImageView {

    func makeRounded() {

        self.layer.borderWidth = 1
        self.layer.masksToBounds = false
        self.layer.borderColor = UIColor.black.cgColor
        self.layer.cornerRadius = self.frame.height / 2
        self.clipsToBounds = true
    }
}

그게 전부입니다 ….


답변

간단하게 확장을 만들 수 있습니다.

import UIKit

extension UIImageView {

   func setRounded() {
      let radius = CGRectGetWidth(self.frame) / 2
      self.layer.cornerRadius = radius
      self.layer.masksToBounds = true
   }
}

다음과 같이 사용하십시오.

imageView.setRounded()


답변

@DanielQ의 답변을 기반으로

Swift 4 및 Swift 3

import UIKit

extension UIImageView {

    func setRounded() {
        self.layer.cornerRadius = (self.frame.width / 2) //instead of let radius = CGRectGetWidth(self.frame) / 2
        self.layer.masksToBounds = true
    }
}

다음 ViewController과 함께 사용할 수 있습니다 .

imageView.setRounded()


답변

Swift에서 UIImageView를 원형으로 만들고 싶다면 다음 코드를 사용할 수 있습니다.

imageView.layer.cornerRadius = imageView.frame.height / 2
imageView.clipsToBounds = true


답변

이것이 누구에게도 도움이되는지 모르겠지만 한동안이 문제로 어려움을 겪고 있었지만 온라인 답변 중 어느 것도 나를 도왔습니다. 나에게 문제는 스토리 보드의 이미지에 다른 높이와 너비가 설정되어 있다는 것입니다. 나는 스택에서 모든 솔루션을 시도해 보았고 그렇게 간단한 것으로 밝혀졌습니다. 둘 다 200으로 설정하면 내 서클 프로필 이미지가 완벽했습니다. 이것은 내 VC의 코드였습니다.

profileImage2.layer.cornerRadius = profileImage2.frame.size.width/2
    profileImage2.clipsToBounds = true


답변

대한 스위프트 4 :

import UIKit

extension UIImageView {

func makeRounded() {
    let radius = self.frame.width/2.0
    self.layer.cornerRadius = radius
    self.layer.masksToBounds = true
   }
}


답변

위의 모든 답변으로는 제 경우 문제를 해결할 수 없습니다. 내는 ImageView맞춤화에 배치되었다 UITableViewCell. 따라서 layoutIfNeeded()여기 에서 메서드를 호출했습니다 . 예:

 class NameTableViewCell:UITableViewCell,UITextFieldDelegate { ...

 override func awakeFromNib() {

    self.layoutIfNeeded()
    profileImageView.layoutIfNeeded()

    profileImageView.isUserInteractionEnabled = true
    let square = profileImageView.frame.size.width < profileImageView.frame.height ? CGSize(width: profileImageView.frame.size.width, height: profileImageView.frame.size.width) : CGSize(width: profileImageView.frame.size.height, height:  profileImageView.frame.size.height)
    profileImageView.addGestureRecognizer(tapGesture)
    profileImageView.layer.cornerRadius = square.width/2
    profileImageView.clipsToBounds = true;
}