2017-10-10 10 views
1

画像ビューの動的なx、y位置を取得する必要があります。 私は0.0のすべての時間を取得しています。この画像ビューの位置を動的に取得

self.imgView.bounds.origin.y

self.imgView.frame.origin.x

を試してみました。

どうすれば入手できますか?

おかげ

+0

ストーリーボードで画像ビューを表示してください。あなたはストーリーボードで(0,0)からのimageviewを追加しましたか? –

+0

「ダイナミック」の意味は? – kirander

+0

UIImageポジションが必要だと思いますか? –

答えて

1

をフィット(0 、0)は、ビュー自体の座標系(原点を基準とする)であるため、常に表示されます。

frame.originは座標系にありますそれが0,0の場合は、その起源がスーパービューの起源である可能性があります。

多分、あなたは画面に関する原点を知りたいでしょうか?その場合、

let posInWindow = v.convert(v.bounds.origin, to: nil) 
+1

ありがとうございます!私はこれを得た :) – user12346

0

swift3UIImageVIew で矩形を取得するためのコードの下にこのコードを使用して、あなたのImageViewContentModeはアスペクトである必要がありますが、任意のビューのbounds.originがあるべき

func calculateRectOfImageInImageView(imageView: UIImageView) -> CGRect { 
    let imageViewSize = imageView.frame.size 
    let imgSize = imageView.image?.size 

    guard let imageSize = imgSize, imgSize != nil else { 
     return CGRect.zero 
    } 

    let scaleWidth = imageViewSize.width/imageSize.width 
    let scaleHeight = imageViewSize.height/imageSize.height 
    let aspect = fmin(scaleWidth, scaleHeight) 

    var imageRect = CGRect(x: 0, y: 0, width: imageSize.width * aspect, height: imageSize.height * aspect) 
    // Center image 
    imageRect.origin.x = (imageViewSize.width - imageRect.size.width)/2 
    imageRect.origin.y = (imageViewSize.height - imageRect.size.height)/2 

    // Add imageView offset 
    imageRect.origin.x += imageView.frame.origin.x 
    imageRect.origin.y += imageView.frame.origin.y 

    return imageRect 
} 
0

境界は常にxとyを0に戻します。フレームを使用します。あなたの例では、これらの値は正しいかもしれませんか?ビューの中央にimageViewを追加して、次のログに記録してみてください。

self.imgView.frame.origin.x 
self.imgView.frame.origin.y 
関連する問題