Swift UIImageView拉伸的方面
UIImageView错误地呈现图像的大小。 使用Scale Aspect Fit,如果UIImageView是一个正方形,图像是正确的高宽比,在图像没有填充的区域有透明度。
//Image is Square & Correct Size var imageView = UIImageView(frame: CGRectMake(0, 50, 320, 320)) imageView.clipsToBounds = true imageView.contentMode = UIViewContentMode.ScaleAspectFit //Image is Rectangle & Incorrect Size var imageView = UIImageView(frame: CGRectMake(0, 50, 320, 450)) imageView.clipsToBounds = true imageView.contentMode = UIViewContentMode.ScaleAspectFit
UIImageView需要触摸边缘,并在屏幕的顶部和底部有透明的空间,内部的图像需要保持原来的比例,而不是拉长。 我附上了UIImageView中的图像如何呈现的两个图像。
我向UIImageView添加了一个自动调整掩码,它现在显示正确的比例。
imageView.autoresizingMask = UIViewAutoresizing.FlexibleBottomMargin | UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleRightMargin | UIViewAutoresizing.FlexibleLeftMargin | UIViewAutoresizing.FlexibleTopMargin | UIViewAutoresizing.FlexibleWidth imageView.contentMode = UIViewContentMode.ScaleAspectFit
这个答案对我有帮助: 捕获的照片与AVCaptureSession sessionPreset = AVCaptureSessionPresetPhoto拉伸,因为我正在使用通过手机相机拍摄的图像。
Swift 3你的代码版本:
imageView.autoresizingMask = [.flexibleWidth, .flexibleHeight, .flexibleBottomMargin, .flexibleRightMargin, .flexibleLeftMargin, .flexibleTopMargin] imageView.contentMode = .scaleAspectFit // OR .scaleAspectFill imageView.clipsToBounds = true
我有同样的问题,什么解决它是确保设置内容模式后设置imageView图像。 即:
self.imageView.contentMode = UIViewContentMode.ScaleAspectFit self.imageView.image = imageChosen
干杯
这是UIViewContentMode.ScaleAspectFit
的预期行为。 从文档:
UIViewContentModeScaleAspectFit
通过保持高宽比来缩放内容以适应视图大小的选项。 视图边界的其余区域是透明的。
从你所描述的看来,你需要UIViewContentMode.ScaleAspectFill
UIViewContentModeScaleAspectFill
缩放内容以填充视图大小的选项。 内容的某些部分可能会被剪辑以填充视图的边界。
- 按字母顺序排列数组
- iOS9 Sprite Kit问题
- dynamic的UITextView错位行为
- 在UIViewController中的多个collectionView – IOS的快速
- Swift 2:IBOutlet Collection ! 泄漏内存
- 内存写入性能 – GPU CPU共享内存
- 调整UIImage大小时发生内存泄漏
- UICollectionView – iOS 10 – iPhone 6 Plus模拟器崩溃,但适用于真实设备
- ios – Swift – dequeueReusableCellWithReuseIdentifier,collectionViewController的单元格(在UIView中)滚动后不会加载