【发布时间】:2019-04-04 10:43:36
【问题描述】:
我有一个 UIImageView 显示信用卡的图像,我的问题是我想在它周围做寄宿生,所以信用卡不会接触 UIimageView 的边缘,我不想改变 UIImageView 在屏幕上的位置那我该怎么办?
(与蓝卡的例子不同,它不必只从侧面留出空格,它可以从所有侧面缩小)
【问题讨论】:
标签: objective-c xcode uiimageview
我有一个 UIImageView 显示信用卡的图像,我的问题是我想在它周围做寄宿生,所以信用卡不会接触 UIimageView 的边缘,我不想改变 UIImageView 在屏幕上的位置那我该怎么办?
(与蓝卡的例子不同,它不必只从侧面留出空格,它可以从所有侧面缩小)
【问题讨论】:
标签: objective-c xcode uiimageview
您基本上有 (3) 三个可以解决此问题的选项。
调整UIImageView 的UIViewContentMode contentMode 使其正确显示图像(但这仅适用于您使用的图像在不触及边框的情况下缩放以适应.
改用 UIButton 并简单地调整图像插入直到您满意(只需禁用按钮或在此处将用户交互设置为 no 以“模仿”图像视图)
创建一个包装器方法,该方法将 new 图像创建为您想要的大小。像这样的东西应该可以正常工作
CGSize size = CGSizeMake(< some width > , < some height >);
然后使用您选择的尺寸创建一个新的图像捕获
CGFloat scale = MAX(size.width/image.size.width, size.height/image.size.height);
CGFloat width = image.size.width * scale;
CGFloat height = image.size.height * scale;
CGRect imageRect = CGRectMake((size.width - width)/2.0f,
(size.height - height)/2.0f,
width,
height);
UIGraphicsBeginImageContextWithOptions(size, NO, 0);
[image drawInRect:imageRect];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
从这里你应该能够只应用边框宽度和颜色来获得你想要的结果!
我猜第四个 (4th) 选项可能是手动缩小图像(使用一些照片编辑器),以便它渲染(适合)到您的图像视图中,并在图像周围有适当的填充。不过,我认为其他方法更简单,也是最佳实践。
【讨论】: