自调整大小uitableviewcell在子视图内部内容大小更改时不重新计算内容大小
各位,我对uitableviewcell有意见 具有子视图的自定义uitableview单元格,其中一个是名为CustomIntrinsicImageView的自定义图像视图,代码如下:自调整大小uitableviewcell在子视图内部内容大小更改时不重新计算内容大小,uitableview,swift,Uitableview,Swift,各位,我对uitableviewcell有意见 具有子视图的自定义uitableview单元格,其中一个是名为CustomIntrinsicImageView的自定义图像视图,代码如下: class CustomIntrinsicImageView: UIImageView { var _preferredMaxLayoutWidth: CGFloat! var preferredMaxLayoutWidth: CGFloat! { get {
class CustomIntrinsicImageView: UIImageView {
var _preferredMaxLayoutWidth: CGFloat!
var preferredMaxLayoutWidth: CGFloat! {
get {
return _preferredMaxLayoutWidth
}
set {
_preferredMaxLayoutWidth = newValue
invalidateIntrinsicContentSize()
}
}
override func intrinsicContentSize() -> CGSize {
if let size = image?.size {
let width: CGFloat
let height: CGFloat
if let maxLayoutWidth = preferredMaxLayoutWidth where size.width > maxLayoutWidth {
width = maxLayoutWidth
height = maxLayoutWidth * size.height/size.width
} else {
width = size.width
height = size.height
}
return CGSizeMake(width, height)
}
return CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric)
}
}
子视图对单元具有布局约束,图像视图在单元的layoutSubview主体中更新preferredMaxLayoutWidth,代码如下
覆盖函数布局子视图(){
super.layoutSubviews()
形象