我有一个包含一行UIView
子类的UIView
。子类已经重写了drawRect
: 并设置了 contentMode = UIViewContentModeRedraw
。
当用户缩放父容器时,子视图
也会随之缩放。当形状发生变化时,我想让drawRect
重复调用以更改子视图
的内容。到目前为止,我尝试了很多但没有成功。请问正确的方法是什么?
谢谢,
Doug
我有一个包含一行UIView
子类的UIView
。子类已经重写了drawRect
: 并设置了 contentMode = UIViewContentModeRedraw
。
当用户缩放父容器时,子视图
也会随之缩放。当形状发生变化时,我想让drawRect
重复调用以更改子视图
的内容。到目前为止,我尝试了很多但没有成功。请问正确的方法是什么?
谢谢,
Doug
setNeedsDisplay
,有人说 setNeedsLayout
.. 这里有什么不同的含义? - StiNSLayoutManager
和一些 NSTextContainer
在两列中排版文本。因为我使用了多个文本容器(而且我不确定我想要多个 UITextView
),所以我重写了 MyDrawingView: UIView
的 draw(rect: CGRect)
方法。self.contentMode = .redraw
仍然会导致旋转时出现轻微的拉伸 - 这足以成为无法接受的问题。contentMode = .left
或者甚至是 contentMode = .scaleAspectFit
设置为我想要的像素完美旋转的效果非常接近。 但是很明显,我没有得到所需的绘制调用。layoutSubviews()
方法,将 contentMode
切换到 .scaleAspectFit
,调用 super.layoutSubviews()
,然后再切换回来。 :Poverride func layoutSubviews() {
self.contentMode = .scaleAspectFit
super.layoutSubviews()
self.contentMode = .redraw
}
这是...完美的。