2
我试图实现一个甜甜圈图,但我努力保持标签互不重叠。我正在寻找清洁解决方案的想法来避免这种情况。防止UIViews重叠
段和标签类看起来如此:
class Segment {
var index: Double?
var tagText: String?
}
class SegmentTag: UIView {
@IBOutlet var iconView: UIImageView!
@IBOutlet var textLabel: UILabel!
init(text: String?, icon: UIImage?, frame: CGRect) {
...
}
}
在该图中的类,这些段和标签在拉伸(被绘制_ RECT :):
override func draw(_ rect: CGRect) {
for tag in tags {
tag.removeFromSuperview()
}
tags = [UIView]()
let tagSize = CGSize(width: 50, height: 60)
for segment in segments {
// ... Draw each segment
let radius = ...
let angle = ...
let tag = SegmentTag(text: segment.tagText, icon: tagIcon, frame: tagRect)
var tagPoint = CGPoint(x: radius * cos(angle),
y: radius * sin(angle))
var tagRect = CGRect(origin: tagPoint, size: tagSize)
self.addSubview(tag)
tags.append(tag)
}
}
你会如何避免重叠的意见?
我遇到过类似的问题,可以通过改变行的长度来缓解问题。但是,如果将大量较小的值聚集在一起,则仍会遇到同样的问题。我不得不在一个单独的表格视图中实现一个图例。 – TheAppMentor