這裏是我創建滾動視圖和ImageView的編程和這裏IMG是PHAsset
,我從圖庫中選擇圖片。
在這裏,我正在做的,選擇一個圖像,並移動到其他視圖控制器,並根據我的圖像尺寸調整該圖像 因此,圖像放大後不是模糊的。
最小縮放是imageview綁定,最大縮放是4.0。
func singleVC1() {
let v = UIView(frame: CGRect(x: 40, y: 50, width: self.view.frame.size.width - 80, height: view.frame.size.height - 200))
let view1 = UIView(frame: CGRect(x: 0, y: 0, width: v.frame.size.width, height: v.frame.size.height/2 - 1))
let scroll1 = UIScrollView.init(frame: view1.bounds)
let imgview = UIImageView.init(frame: (CGRect)(origin: CGPoint.zero, size: self.returnAspectSize(targetWidth: view.frame.size.width, img: img)))
self.setZoomScale(scrollview: scroll1, imageview: imgview)
imgview.image = self.getUIImage(asset: img)
scroll1.maximumZoomScale = 4.0;
scroll1.delegate = self;
scroll1.bounces = false
scroll1.contentSize = imgview.frame.size
scroll1.addSubview(imgview)
view1.layer.borderColor = UIColor.red.cgColor
view1.layer.borderWidth = 5.0
view1.addSubview(scroll1)
v.addSubview(view1)
let view2 = UIView(frame: CGRect(x: 0, y: v.frame.size.height/2+1, width: v.frame.size.width, height: v.frame.size.height/2 - 1))
let scroll2 = UIScrollView.init(frame: view2.bounds)
let imgview1 = UIImageView.init(frame: (CGRect)(origin: CGPoint.zero, size: self.returnAspectSize(targetWidth: view.frame.size.width, img: img)))
imgview1.image = self.getUIImage(asset: img)
self.setZoomScale(scrollview: scroll2, imageview: imgview1)
scroll2.bounces = false
scroll2.maximumZoomScale = 4.0;
scroll2.delegate = self;
view2.layer.borderColor = UIColor.red.cgColor
view2.layer.borderWidth = 5.0
scroll2.contentSize = imgview1.frame.size
scroll2.addSubview(imgview1)
view2.addSubview(scroll2)
v.addSubview(view2)
self.view.addSubview(v)
}
func setZoomScale(scrollview : UIScrollView, imageview : UIImageView) {
var minZoom = min(self.view.bounds.size.width/imageview.bounds.size.width, self.view.bounds.size.height/imageview.bounds.size.height);
if (minZoom > 1.0) {
minZoom = 1.0;
}
scrollview.minimumZoomScale = minZoom;
scrollview.zoomScale = minZoom;
}
func returnAspectSize(targetWidth : CGFloat, img : PHAsset) -> CGSize {
let img1 = self.getUIImage(asset: self.img)
let targetwidth = targetWidth
let scalefactor = (CGFloat)(targetwidth)/(CGFloat)((img1?.size.width)!)
let targetheight = (img1?.size.height)! * scalefactor
let targesize = CGSize(width: (CGFloat)(targetwidth), height: targetheight)
return targesize
}
試試這個。我相信這會幫助你。
在截圖中有什麼問題在截圖中有很多問題。 – KKRocks
@KKRocks我還沒有設計它,我只是專注於如何使每個圖像單擊時展開,並且能夠在擴展後正確縮放。 –
那你想做什麼? – KKRocks