पर सर्कल के चारों ओर ऑब्जेक्ट्स को सही तरीके से सेट करने के लिए कैसे करें मैंने कस्टम दृश्य के केंद्र पर स्थित सर्कल के चारों ओर ऑब्जेक्ट्स रखने के लिए कुछ कोड लिखा है, लेकिन यह सर्कल के चारों ओर पूरी तरह से नहीं है। मुझे नहीं पता कि कोड कहां गलत है।UIView
func createObjectsAroundCircle() {
let center = CGPointMake(bounds.width/2 ,bounds.height/2)
let radius : CGFloat = 100
let count = 20
var angle = CGFloat(2 * M_PI)
let step = CGFloat(2 * M_PI)/CGFloat(count)
let circlePath = UIBezierPath(arcCenter: center, radius: radius, startAngle: CGFloat(0), endAngle:CGFloat(M_PI * 2), clockwise: true)
let shapeLayer = CAShapeLayer()
shapeLayer.path = circlePath.CGPath
shapeLayer.fillColor = UIColor.clearColor().CGColor
shapeLayer.strokeColor = UIColor.redColor().CGColor
shapeLayer.lineWidth = 3.0
self.layer.addSublayer(shapeLayer)
// set objects around circle
for var index = 0; index < count ; index++ {
let x = cos(angle) * radius + center.x
let y = sin(angle) * radius + center.y
let label = UILabel()
label.text = "\(index)"
label.frame.origin.x = x
label.frame.origin.y = y
label.font = UIFont(name: "Arial", size: 20)
label.textColor = UIColor.blackColor()
label.sizeToFit()
self.addSubview(label)
angle += step
}
}
आपके लेबल के फ्रेम की उत्पत्ति इसके शीर्ष बाएं कोने है। यही कारण है कि आपका लेबल टेक्स्ट नीचे दाएं चतुर्भुज पर, और ऊपरी बाएं चतुर्भुज के अंदर दिखाई देता है। –
एक एक्सएम फ्रेम – raki
@PetahChristiani सेट करने के बाद, बस उन एक्स और वाई बिंदुओं को लेबल के केंद्र में सेट करें, धन्यवाद, मैं वास्तव में इसे भूल गया। –