0
我有一个UIView子类。在Core Graphics中获取具有相同笔划的不同行
下面是如何重写绘制方法:
let path = UIBezierPath()
path.lineWidth = 1
path.move(to: CGPoint(x: rect.minX, y: rect.minY+1))
path.addLine(to: CGPoint(x: rect.maxX, y: rect.minY+1))
UIColor.lightGray.setStroke()
path.stroke()
path.close()
但线出现时,视图呈现不同。 特别是
当view.frame.height小于superview.frame.height:
当view.frame.height比superview.frame.height更大:
灿弄清楚我做错了什么。
是的,你的假设是正确的。我的代码在绘制(_ rect:CGRect)。我的观点定位如下 - > UIViewController.view包含一个UITableView.tableViewHeader = UIView - >这包含UIView-子类与AutoLayout定位。 – Anon
那么,当贝塞尔路径不同时,每个时间贝塞尔路径的最高**实际**矩形Y值是多少?根据view.frame.height如何固定到超级视图,您可能会看到您编码的内容。另外,问题到底是什么?你是否得到相同的行,除了它是垂直“关闭x”,或其他? – dfd
对于这两种情况,我都得到了相同的结果:(0.0,0.0,406.0,441.666666666667)。 UIViewSubclass固定在UITableView.tableViewHeader的视图的顶部,左侧和右侧,但未绑定在底部。问题是线条的粗细。一个似乎比另一个更厚 - 尽管两者应该具有相同的线宽(1)。 – Anon