我在UIView
中有一个自定义的UIScrollView
子类,该子类(除其他事项外)
override var intrinsicContentSize: CGSize {
get {
...
}
}
和(最小示例):
override func draw(_ rect: CGRect) {
print(rect)
UIColor.white.set() // it has a dark background
UIBezierPath(rect: CGRect(x: 100, y: 100, width: 10, height: 10)).stroke()
}
对于“较小”的视图,绘图工作正常,但超过一定限制后,将不再进行绘图。
它对直肠很好
(0.0, 0.0, 79.5, 7458.5)
(0.0, 0.0, 228.5, 7458.5)
(0.0, 0.0, 149.0, 7738.0)
(0.0, 0.0, 429.0, 7738.0)
但是对直肠失败
(0.0, 0.0, 89.5, 8381.0)
(0.0, 0.0, 257.0, 8381.0)
没有错误消息或警告。没有什么可以让我知道失败的原因和原因。
UIScrollView
仍可滚动。它的内容是空的。这是在模拟的第五代iPad和模拟的iPad Pro 9.7“中发生的。
最佳答案
问题在于draw
仅作为用于小视图而不是大画布的自定义绘图。但是,我认为此故障点应记录在某处。使画布更大会导致出现ignoring bogus layer size
警告。
为了解决这个问题,要么考虑
不使用平局
使用UITableView
或UICollectionView
一点一点地加载和卸载巨大的图层。
关于ios - draw(_ rect:CGRect)未绘制超过特定大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56598739/