- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我面临的问题很简单(而且没有问题本身那么抽象)。我正在寻找一种解决方案来突出显示图像的某个区域(选区),同时图像的其余部分变淡或变灰。当您裁剪图像时,您可以将效果与您在 Photoshop 中看到的界面进行比较。图像变灰,将要裁剪的区域清晰可见。
我最初的想法是为此使用掩码(因此出现问题),但我不确定这是否可行,如果可行,如何进行。
最佳答案
不确定这是否是最好的方法,但它应该可行。
首先,您创建 View 的屏幕截图。
UIGraphicsBeginImageContextWithOptions(captureView.bounds.size, view.opaque, 0.0);
[captureView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
这段代码是“偷来的”并从这里稍作修改: Low quality of capture view context on iPad
然后您可以创建与原始尺寸相同的灰度 mask 图像(屏幕截图)。
按照 How to Mask an Image 上清晰简单的说明进行操作.
然后创建 UIImageView
,将蒙版图像设置为图像并将其添加到原始 View 之上。您可能还想根据自己的喜好设置此 UIImageView
的 backgroundColor
。
编辑:
一种更简单的方法可能是使用 view.layer.mask
,它是“一个可选层,其 alpha channel 用作掩码以在层的背景和合成层的结果之间进行选择具有过滤背景的内容。” (来自 CALayer 类引用)
一些文献:
还有一个简单的示例,说明如何使用(可能隐藏的)另一个 UIView 制作 mask :
关于ios - 如何屏蔽 UIView 以突出显示选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9690625/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!