我需要獲取圖像視圖的動態x,y位置。 我已經試過這動態獲取imageview的位置
self.imgView.bounds.origin.y
和
self.imgView.frame.origin.x
我得到0.0所有的時間。
我該如何得到這個?
感謝
我需要獲取圖像視圖的動態x,y位置。 我已經試過這動態獲取imageview的位置
self.imgView.bounds.origin.y
和
self.imgView.frame.origin.x
我得到0.0所有的時間。
我該如何得到這個?
感謝
任何觀點的bounds.origin應爲(0 ,0),因爲它是視圖本身的座標系(相對於其原點)
frame.origin位於座標系它的超級觀點,所以如果它是0,0,那麼這可能是它的起源在超級觀點的起源。
也許你想知道相對於屏幕的起源?如果是這樣,
let posInWindow = v.convert(v.bounds.origin, to: nil)
謝謝!我懂了 :) – user12346
請使用下面的代碼來獲取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
}
界限將始終返回x和y爲0,您要使用框架。在你的例子中,這些值可能是正確的?嘗試添加您的imageView在視圖中心和日誌記錄:
self.imgView.frame.origin.x
self.imgView.frame.origin.y
顯示您的故事板上的imageview。你是否在storyboard中添加了來自(0,0)的imageview? –
「動態」下的含義是什麼? – kirander
我認爲你需要UIImage的位置? –