如何在swift中设置图像

我怎样才能让我的图片与swift?

我的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.blackColor().CGColor image.layer.cornerRadius = image.frame.height/2 image.clipsToBounds = true } 

这就是你需要的….

你可以简单地创build扩展:

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

并使用它如下:

 imageView.setRounded() 

如果你的意思是你想在Swift中创build一个UIImageView循环,你可以使用下面的代码:

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

不知道这是否有助于任何人,但我一直在努力解决这个问题,网上没有答案帮助我。 对我来说,问题是我在故事板的图像上设置了不同的高度和宽度。 我尝试了所有的解决scheme,事实certificate这是一件简单的事情。 一旦我把它们都设置为200我的圆形轮廓图像是完美的。 这是代码,然后在我的VC。

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

基于@DanielQ的回答

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() 

首先,您需要设置相同的宽度和高度以获得圆形ImageView。以下我将宽度和高度设置为100,100。如果要根据所需的大小设置相等的宽度和高度,请在此设置。

  var imageCircle = UIImageView(frame: CGRectMake(0, 0, 100, 100)) 

那么你需要设置高度/ 2的angular落半径

  imageCircle.layer.cornerRadius = imageCircle.frame.size.height/2 imageCircle.layer.borderWidth = 1 imageCircle.layer.borderColor = UIColor.blueColor().CGColor imageCircle.clipsToBounds = true self.view.addSubview(imageCircle) 

如果你的图像是圆形的,它将有一个完全相同的大小(即120)的高度和宽度。 你只需要一半的数字,并在你的代码中使用(image.layer.cornerRadius = 60)。

以上所有的答案都不能解决我的问题。 我的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; } 

从GitHub下载并使用Toucan。 它在Swift中提供。 头脑麻木的容易。 它还提供了一堆其他的图像效果。

对于Swift3 / Swift4开发者:

 let radius = yourImageView.frame.width / 2 yourImageView.layer.cornerRadius = radius yourImageView.layer.masksToBounds = true