【问题标题】:zoom image with scrollview swift ios使用scrollview swift ios缩放图像
【发布时间】:2017-01-04 03:08:45
【问题描述】:

我在使用滚动视图缩放图像时遇到问题。 如果我将滚动视图放在左侧,宽度为 125,高度为 375,它不会缩放图像。

只有当我将滚动视图放在视图的中心时它才有效。

截图:

为什么滚动视图在左侧时不缩放?

这是我的代码

var imgview:UIImageView!

var imagepicked:UIImage!

var  minZoomScale:CGFloat!

let picker = UIImagePickerController()


@IBOutlet weak var scrollViewSquare: UIScrollView!

override func viewDidLoad() {

    super.viewDidLoad()
    picker.delegate = self
    scrollViewSquare.delegate = self
    picker.allowsEditing = false
    picker.sourceType = .PhotoLibrary
}

func imagePickerController(
    picker: UIImagePickerController,
    didFinishPickingMediaWithInfo info: [String : AnyObject])
{
    imagepicked = (info[UIImagePickerControllerOriginalImage] as? UIImage)!
        ImageViewInit()

    dismissViewControllerAnimated(false, completion: nil)
}

@IBAction func Pick(sender: AnyObject) {


    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.SavedPhotosAlbum){   
 self.presentViewController(picker, animated: true, completion: nil)
    }
}

func ImageViewInit(){
    imgview = UIImageView()
    imgview.frame =  CGRectMake(0, 0, imagepicked.size.width, imagepicked.size.height)
    imgview.image = imagepicked
    imgview.contentMode = .ScaleAspectFit
    imgview.backgroundColor = UIColor.greenColor()
    scrollViewSquare.maximumZoomScale = 4;
    scrollViewSquare.minimumZoomScale = 0.02;
    scrollViewSquare.bounces = true;
    scrollViewSquare.bouncesZoom = true;
    scrollViewSquare.contentMode = .ScaleAspectFit
    scrollViewSquare.contentSize = imagepicked.size
    scrollViewSquare.autoresizingMask = UIViewAutoresizing.FlexibleWidth
    scrollViewSquare.addSubview(imgview)
    setZoomScale()
}

func setZoomScale(){
    let imageViewSize = imgview.bounds.size
    let scrollViewSize = scrollViewSquare.bounds.size
    let widthScale = scrollViewSize.width / imageViewSize.width
    let heightScale = scrollViewSize.height / imageViewSize.height
    minZoomScale = max(widthScale, heightScale)
    scrollViewSquare.minimumZoomScale = minZoomScale
    scrollViewSquare.zoomScale = minZoomScale
}


func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {

        return imgview

}

【问题讨论】:

  • @Bensalem Ilyes ,你的意思是说,你不能在模拟器中放大它,对吧?如果是这样,请不要担心,它将在设备上运行。我已经编译了你的代码,它正在运行

标签: ios swift uiscrollview zooming


【解决方案1】:

你好@Bensalem Ilyes,

我已经尝试过您的代码,但缩放在模拟器上不起作用,因为捏合手势的中心位于中间,因此滚动视图上的捏合被翻译为简单的平移手势。我在真实设备上尝试了您的代码,并且缩放效果很好。

在模拟器上重新定位捏合手势: alt+shift键

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多