私はUIImageViewで何かを描画できるアプリケーションを開発しようとしています。私は次のコードを持っています。素早くUIImageViewで描画する
import UIKit
class Line
{
var startPoint:CGPoint
var endPoint:CGPoint
init (start:CGPoint , end:CGPoint)
{
startPoint = start
endPoint = end
}
}
class AnnotationView: UIView {
static internal let nibName = "AnnotationView"
@IBOutlet weak var imageView: UIImageView!
var lines :[Line] = []
var lastPoint:CGPoint!
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
lastPoint = touches.first?.location(in: self)
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first
{
let newPoint = touch.location(in:self)
lines.append(Line(start: lastPoint, end: newPoint))
lastPoint = newPoint
self.setNeedsDisplay()
}
}
override func draw(_ rect: CGRect) {
if let context = UIGraphicsGetCurrentContext()
{
context.beginPath()
for line in lines
{
context.move(to: line.startPoint)
context.addLine(to: line.endPoint)
}
context.setLineCap(CGLineCap.round)
context.setStrokeColor(red: 0, green: 0, blue: 0, alpha: 1)
context.setLineWidth(5)
context.strokePath()
}
}
}
は今、上記のコードで私は、インタフェースビルダーからスーパーのフルサイズに設定UIImageViewを有するのUIViewに由来AnnotationViewクラスを有しています。これは、私がUIImageViewに何かを描きたい、単純な描画アプリケーションです。今問題は、imageView.imageがnilであるときに描画が表示され、imageView.imageにイメージセットがある場合に描画が表示されない場合です。これは、このimageViewで設定されている画像を表示するだけです。両方のシナリオでデバッグしましたが、すべてのメソッドが呼び出されます。確かに私が紛失しているものがあります。誰でも助けてくれますか?私は私のUIImageViewで設定した画像の上に私の図面を表示したい。 よろしく、 ニーナ
お返事ありがとうございます。画像の有無に関わらず、何も描画していません... – neena
@neena新しいバージョンをコピーして貼り付けてください。私は 'init(frame:)'を 'awakeFromNib()'に置き換えてオーバーレイを追加する前に画像ビューがロードされていることを確認してください。働いているかどうか私に教えてください。 – nshuman
それはうまくいった。ご協力いただきありがとうございます! – neena