私はドーナツの図を実装しようとしていますが、タグが重なっていないようにしています。私はこれを避けるためのクリーンなソリューションに関するアイデアを探しています。UIViewがオーバーラップしないようにする
セグメントとタグ・クラスのような見える:図クラスの
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