如何解决iOS:以其他方式将图像放在UITableView上,UITableView正常工作吗?
iOS:目标是将图像放在UITableView上,UITableView正常工作。
通常,将图像放在UITableView上,UITableView的触摸事件为 切断。
我需要将自定义图形放在钢琴谱UITableView上,并且UITableView可以正常工作。
这是我的主意:
将绘图视图放在表格视图的单元格下面。
每个单元格都有图纸视图的引用。
每个单元格的顶部都有一个画布切片视图。
关键方法是CALayer
的{{1}}
以下是相关代码:
open func render(in ctx: CGContext)
UITableViewCell中使用的画布:
class RenderV: UIView {
var renderer: UIView?
var index = -1
override func draw(_ rect: CGRect) {
guard let context = UIGraphicsGetCurrentContext()
else { return }
var f: CGSize = .zero
if let v = renderer{
f = v.frame.size
}
let w = frame.size.width
let h = frame.size.height
context.translateBy(x: w/2 - f.width/2,y: h * CGFloat(index) - f.height)
renderer?.layer.render(in: context)
}
}
通话代码:
class TableViewCell: UITableViewCell {
var renderer: UIView?{
didSet{
guard idx > 0 else {
return
}
contain.index = idx
contain.renderer = renderer
contain.setNeedsdisplay()
}
}
@IBOutlet weak var contain: RenderV!
var idx = -1
}
我的解决方案不直观,需要计算。
有更好的主意吗?
解决方法
我不确定我是否完全理解问题所在。我了解的是,您在UITableView
上渲染的视图正在阻止您希望传递给表格的触摸事件,对吗?
如果是这种情况,只需设置视图的isUserInteractionEnabled = false
。这将使事件能够渗透到视图中并被UITableView
捕获。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。