• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - 如何将 UIImageView 裁剪为自定义形状

[复制链接]
菜鸟教程小白 发表于 2022-12-13 17:16:23 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

用户是否可以在他们希望裁剪到的 UIImageView 位周围画一条虚线(圆圈),然后为 UIImageView调整到这些点?有点像 Photoshop 中的套索/选框效果:

enter image description here



Best Answer-推荐答案


更新:从 iOS 8.x 开始,UIImageView 提供了一个 maskView 属性。只需准备一个带有一些不透明像素的图像,使用该蒙版图像创建另一个 ImageView ,并将此蒙版 ImageView 设置为 maskView。 mask 图像中的不透明像素将是基础图像中显示的像素。

    UIImageView *maskView = [[UIImageView alloc] initWithImage:[UIImage imageNamed"somemask"]];
    maskView.frame = imageView.bounds;
    imageView.maskView = maskView;
    // imageView will be masked by maskView

.

原答案

还有很多工作要做,但这里有一个高级大纲:

  1. 创建一个将成为蒙版的空图像
  2. 根据用户输入在该图像中构建路径
  3. 填充路径以将其变成蒙版
  4. 将 mask 应用到 imageview 的图像

创建图像:这里的一个简单想法是在您的项目中附带一张黑色图像。它的大小应与用户可以选择的最大区域相匹配。将图像读入内存 (UIImage imageNamed:) 并通过调用 UIGraphicsBeginImageContext 将其设置为绘图上下文。

创建路径 see apple docs )。当用户开始抚摸该区域时,调用 CGContextBeginPath,然后跟随用户手势,对触摸进行采样并通过重复调用 CGContextMoveToPoint 作为 touchesMoved 添加小片段。

创建蒙版:要将路径变成蒙版,您需要黑色背景和白色填充路径。如果您从黑色图像开始,您只需要进行填充。请参阅相同的苹果指南。

最后,您将把这个 mask 应用到 imageView 的图像上。 Here's a decent reference为此。

关于iphone - 如何将 UIImageView 裁剪为自定义形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13015676/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap