2017-10-10 94 views
1

我需要獲取圖像視圖的動態x,y位置。 我已經試過這動態獲取imageview的位置

self.imgView.bounds.origin.y

self.imgView.frame.origin.x

我得到0.0所有的時間。

我該如何得到這個?

感謝

+0

顯示您的故事板上的imageview。你是否在storyboard中添加了來自(0,0)的imageview? –

+0

「動態」下的含義是什麼? – kirander

+0

我認爲你需要UIImage的位置? –

回答

1

任何觀點的bounds.origin應爲(0 ,0),因爲它是視圖本身的座標系(相對於其原點)

frame.origin位於座標系它的超級觀點,所以如果它是0,0,那麼這可能是它的起源在超級觀點的起源。

也許你想知道相對於屏幕的起源?如果是這樣,

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

謝謝!我懂了 :) – user12346

0

請使用下面的代碼來獲取RECT在UIImageVIew 這段代碼在swift3和你ImageViewContentMode應該是看點適合

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