Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 我怎样才能创造“我的生活”;玻璃“;对我个人观点的影响?_Objective C_Iphone_Uiview_Calayer_Clipping - Fatal编程技术网

Objective c 我怎样才能创造“我的生活”;玻璃“;对我个人观点的影响?

Objective c 我怎样才能创造“我的生活”;玻璃“;对我个人观点的影响?,objective-c,iphone,uiview,calayer,clipping,Objective C,Iphone,Uiview,Calayer,Clipping,我正在开发一个iPhone应用程序,它有一些非矩形的UI元素。目前,我正在子类化UIView,并在drawRect中使用CGPathRef绘制黑色边框和彩色填充的内部 不过,我想让这些项目看起来更像“按钮”,因此我想在iPhone应用程序的图标(当您未将uiprerendericon设置为true时)或其他按钮上使用一些相同类型的“玻璃效果” 我四处寻找,发现了这个,似乎很接近我需要的: 但我很难想出如何将渐变剪裁到我的形状 视图上的mask属性似乎是正确的选择,这似乎要求我创建一个新的CAL

我正在开发一个iPhone应用程序,它有一些非矩形的UI元素。目前,我正在子类化
UIView
,并在
drawRect
中使用
CGPathRef
绘制黑色边框和彩色填充的内部

不过,我想让这些项目看起来更像“按钮”,因此我想在iPhone应用程序的图标(当您未将
uiprerendericon
设置为true时)或其他按钮上使用一些相同类型的“玻璃效果”

我四处寻找,发现了这个,似乎很接近我需要的:

但我很难想出如何将渐变剪裁到我的形状

视图上的
mask
属性似乎是正确的选择,这似乎要求我创建一个新的
CALayer
对象,并以某种方式应用剪辑

我希望有一些很好的方便函数来实现这一点,不过如果我需要写一些更复杂的东西,也没关系。我只是很难弄清楚如何将路径应用为遮罩。我不确定是否需要创建新的绘图上下文并将路径绘制到其中?然后使用
CGContextClip

我想我已经找到了很多正确的部件,我只是很难理解如何组装它们


有人能给我指一下正确的方向吗?(我很乐意阅读文档中的更多内容,请给我指出正确的方向。)

您可以创建一个CAShapeLayer并将其路径设置为您的CGPathRef。然后将CAGradientLayer的mask属性设置为shapeLayer。

您可以创建CAShapeLayer并将其路径设置为CGPathRef。然后将CAGradientLayer的mask属性设置为shapeLayer。

我最近一直在休眠iPhone开发,但我会尝试在某个时候尝试一下,并让您知道结果。谢谢我最近一直在做iphonedev,但我会尝试在某个时候试一试,并让你知道结果。谢谢