为什么我在UIImageView中得到错误的帧宽度值

时间:2016-08-04 03:42:16

标签: ios swift uitableview

我想在UITableViewCell中自定义圆角图像。但是,我无法在故事板中获得正确的图像宽度。为什么呢?

enter image description here

// Range expanding for min
double.MaxValue - random.NextDouble() * (double.MaxValue - min);

// Range expanding for max 
double.MinValue + random.NextDouble() * (max - double.MinValue);

4 个答案:

答案 0 :(得分:1)

替换你的陈述

print("\(self.userImageView.frame.width)") // print out 1000.0 !! Same here

print("\(self.userImageView.frame.size.width)")

因为frameCGRect

的类型
public struct CGRect {
    public var origin: CGPoint
    public var size: CGSize
    public init()
    public init(origin: CGPoint, size: CGSize)
}

在该结构中CGSize具有以下结构

public struct CGSize {
    public var width: CGFloat
    public var height: CGFloat
    public init()
    public init(width: CGFloat, height: CGFloat)
}

答案 1 :(得分:0)

你也可以试试这个

var imageWidth = userImageView.frame.size.width

这可能会帮助您获得图像宽度。

答案 2 :(得分:0)

将这些代码放入 layoutIfNeeded()

后,一切顺利
override func layoutIfNeeded() {
    super.layoutIfNeeded()
    userImageView.layer.cornerRadius =  self.userImageView.frame.width / 2
    userImageView.layer.borderWidth = 1
    userImageView.layer.borderColor = UIColor.white.cgColor
    userImageView.layer.masksToBounds = true
}

答案 3 :(得分:0)

取相同的宽度和高度。写下面后,你会得到精确的圆形图像。         imageView.layer.cornerRadius = imageView.frame.width / 2         imageView.layer.borderWidth = 1         imageView.layer.borderColor = UIColor.grayColor()。CGColor         imageView.layer.masksToBounds = true