Pix*_*xel 72 uiimageview ios 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))
}
}
Run Code Online (Sandbox Code Playgroud)
我profilPicture = UIImageView(frame: CGRectMake(0, 0, 100, 100))
什么都不做..
例如:http://www.appcoda.com/ios-programming-circular-image-calayer/
小智 188
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
}
Run Code Online (Sandbox Code Playgroud)
这就是你所需要的......
Dan*_*uta 35
你可以简单地创建扩展:
import UIKit
extension UIImageView {
func setRounded() {
let radius = CGRectGetWidth(self.frame) / 2
self.layer.cornerRadius = radius
self.layer.masksToBounds = true
}
}
Run Code Online (Sandbox Code Playgroud)
并使用如下:
imageView.setRounded()
Run Code Online (Sandbox Code Playgroud)
MrM*_*ins 14
基于@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
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在以下任何地方使用它ViewController
:
imageView.setRounded()
Run Code Online (Sandbox Code Playgroud)
Tom*_*pee 12
如果你的意思是你想在Swift中创建一个UIImageView循环,你可以使用这个代码:
imageView.layer.cornerRadius = imageView.frame.height / 2
imageView.clipsToBounds = true
Run Code Online (Sandbox Code Playgroud)
不知道这是否对任何人都有帮助,但我一直在努力解决这个问题,网上的答案都没有帮助我.对我来说问题是我在故事板中的图像上设置了不同的高度和宽度.我尝试了堆栈上的每个解决方案,事实证明它就像那样简单.一旦我将它们设置为200,我的圆形轮廓图像就完美了.这是我的VC中的代码.
profileImage2.layer.cornerRadius = profileImage2.frame.size.width/2
profileImage2.clipsToBounds = true
Run Code Online (Sandbox Code Playgroud)
这种方式是最便宜的方式,并且始终保持图像视图圆润:
class RoundedImageView: UIImageView {
override init(frame: CGRect) {
super.init(frame: frame)
clipsToBounds = true
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
clipsToBounds = true
}
override func layoutSubviews() {
super.layoutSubviews()
assert(bounds.height == bounds.width, "The aspect ratio isn't 1/1. You can never round this image view!")
layer.cornerRadius = bounds.height / 2
}
}
Run Code Online (Sandbox Code Playgroud)
其他答案告诉您根据UIViewController
sviewDidLoad()
方法中设置的帧计算对视图进行四舍五入。这是不正确的,因为它不确定最终的帧是什么。
归档时间: |
|
查看次数: |
96130 次 |
最近记录: |