图像最初填充UIImagePickerController

时间:2015-07-11 09:45:30

标签: ios swift uiimagepickercontroller

在我的iOS应用中,我想从照片库中抓取图像并将其裁剪为方格式。 UIImagePickerController可以很好地解决这个问题,但是有一个小问题:当我从库中选择一个横向照片时,它不会填充裁剪区域(对于肖像图像)。这允许用户选择非正方形区域。 有没有办法强制图像选择器垂直填充裁剪区域就像它横向填充一样 - 没有实现我自己的图像选择器?

我的代码:

class AddProfileViewController: UIViewController, UIGestureRecognizerDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

    @IBOutlet weak var profileImageView: EnhancedImageView!
    let imagePicker = UIImagePickerController()

    override func viewDidLoad() {
        super.viewDidLoad()

        // ...

        imagePicker.delegate = self
    }

    func profileImageTapped() {
        imagePicker.allowsEditing = true
        imagePicker.sourceType = .PhotoLibrary
        presentViewController(imagePicker, animated: true, completion: nil)
    }

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
        // ...
    }

    func imagePickerControllerDidCancel(picker: UIImagePickerController) {
        dismissViewControllerAnimated(true, completion: nil)
    }
}

选择风景图片,如下所示:

image picker with horizontal image

相反,我希望图像水平和垂直延伸到裁剪框,因此图像选择器将始终返回方形图像。

1 个答案:

答案 0 :(得分:0)

我在故事板(90x90)中指定了我的图像视图高度和宽度,并在故事板中选择了“Aspect Fill”和“Clip to Bounds”。如果用户未放大,图像将从中心裁剪为90x90。