में ड्राइंग पॉलीगॉन जब उपयोगकर्ता उस पर टैप करता है तो मुझे अनियमित आकार को हाइलाइट करने की आवश्यकता होती है। ऐसा करने के बारे में मेरा विचार था कि एक बहुभुज को आकर्षित करना जो आकार से मेल खाता है, इसे रंग से भरें और अस्पष्टता को पारदर्शी बनाने के लिए बदलें। दुर्भाग्य से मुझे यह कैसे करना है इस पर कुछ भी नहीं मिला। अनिवार्य रूप से, मैं भरे बहुभुज को आकर्षित करना चाहता हूं, इसे अपने मानचित्र पर ओवरले करें और फिर इसे खारिज कर दें (या छुपाएं)। मैं यह कैसे हासिल कर सकता हूं?स्विफ्ट
Q
स्विफ्ट
9
A
उत्तर
27
शायद आप CAShapeLayer
का उपयोग करना चाहते हैं। यहाँ एक डेमो है:
import XCPlayground
import UIKit
import CoreText
let view = UIView(frame: CGRectMake(0, 0, 300, 300))
XCPShowView("view", view)
let imageView = UIImageView(image: UIImage(named: "profile.jpg"))
imageView.frame = view.bounds
imageView.contentMode = UIViewContentMode.ScaleAspectFill
view.addSubview(imageView)
let shape = CAShapeLayer()
view.layer.addSublayer(shape)
shape.opacity = 0.5
shape.lineWidth = 2
shape.lineJoin = kCALineJoinMiter
shape.strokeColor = UIColor(hue: 0.786, saturation: 0.79, brightness: 0.53, alpha: 1.0).CGColor
shape.fillColor = UIColor(hue: 0.786, saturation: 0.15, brightness: 0.89, alpha: 1.0).CGColor
let path = UIBezierPath()
path.moveToPoint(CGPointMake(120, 20))
path.addLineToPoint(CGPointMake(230, 90))
path.addLineToPoint(CGPointMake(240, 250))
path.addLineToPoint(CGPointMake(40, 280))
path.addLineToPoint(CGPointMake(100, 150))
path.closePath()
shape.path = path.CGPath
परिणाम:
स्विफ्ट 3:
let shape = CAShapeLayer()
cell.layer.addSublayer(shape)
shape.opacity = 0.5
shape.lineWidth = 2
shape.lineJoin = kCALineJoinMiter
shape.strokeColor = UIColor(hue: 0.786, saturation: 0.79, brightness: 0.53, alpha: 1.0).cgColor
shape.fillColor = UIColor(hue: 0.786, saturation: 0.15, brightness: 0.89, alpha: 1.0).cgColor
let path = UIBezierPath()
path.move(to: CGPoint(x: 120, y: 20))
path.addLine(to: CGPoint(x: 230, y: 90))
path.addLine(to: CGPoint(x: 240, y: 250))
path.addLine(to: CGPoint(x: 100, y: 150))
path.close()
shape.path = path.cgPath
+0
बिल्कुल सही! ठीक वही जो मेरे द्वारा खोजा जा रहा था! धन्यवाद! –
संबंधित मुद्दे
- 1. स्विफ्ट: (स्विफ्ट) वर्ण
- 2. स्विफ्ट
- 3. स्विफ्ट
- 4. स्विफ्ट
- 5. स्विफ्ट
- 6. स्विफ्ट
- 7. स्विफ्ट
- 8. स्विफ्ट
- 9. स्विफ्ट
- 10. स्विफ्ट
- 11. स्विफ्ट
- 12. स्विफ्ट
- 13. स्विफ्ट
- 14. स्विफ्ट
- 15. स्विफ्ट
- 16. स्विफ्ट
- 17. स्विफ्ट
- 18. स्विफ्ट
- 19. स्विफ्ट
- 20. स्विफ्ट
- 21. स्विफ्ट
- 22. स्विफ्ट
- 23. स्विफ्ट
- 24. स्विफ्ट
- 25. स्विफ्ट
- 26. स्विफ्ट
- 27. स्विफ्ट
- 28. स्विफ्ट
- 29. स्विफ्ट
आप इसे से एक विचार प्राप्त कर सकते हैं उद्देश्य सी में लिखा यह मैक एप्लिकेशन देखें। – Sandeep
आप या तो drawRect में आकार खींच सकते हैं: (UIBezierPath का उपयोग करके), या एक दृश्य बनाएं और एक कैशपलेयर को एक बेजियर पथ जोड़ें जिसे आप दृश्य की परत में जोड़ते हैं। – rdelmar