- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想让发光效果散布到 thisView 之外。
我使用这段代码制作了Half-Rounded rect cornered UIVew
。
这是我的代码。
+ (UIView *)makeUpperHalfRoundedView:(UIView *)view {
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = view.bounds;
UIBezierPath *roundedPath =
[UIBezierPath bezierPathWithRoundedRect:maskLayer.bounds
byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight
cornerRadii:CGSizeMake(8.f, 8.f)];
maskLayer.fillColor = [[UIColor blackColor] CGColor];
maskLayer.backgroundColor = [[UIColor clearColor] CGColor];
maskLayer.path = [roundedPath CGPath];
// maskLayer.masksToBounds = NO;
//Don't add masks to layers already in the hierarchy!
UIView *superview = [view superview];
[view removeFromSuperview];
view.layer.mask = maskLayer;
[superview addSubview:view];
return view;
}
并且在靠近边界的 View 中有两个图像按钮
。如果按钮发生触摸事件,发光效果显示(showsTouchWhenHighlighted
)
在使用这段代码之前,我只是用
thisView.layer.cornerRadius = 8;
thisVIew.layer.masksToBounds = NO;
发光效果在“thisView”之外传播。
但是在 'thisView' 中使用 CAShapeLayer 来屏蔽半唤醒的矩形后,发光效果被边界屏蔽了。
最佳答案
您所看到的正是面具的工作原理。您正在将蒙版应用于父 View 的图层。我们将该 View 称为 superview
(就像在您的代码中一样)。好的,那会做什么?它将屏蔽 superview
及其所有子层。 包括它的 subview 。它的 subview 实际上是它的子层。
因此,由于按钮是 superview
的 subview ,因此它们像 superview
中的其他所有内容一样被屏蔽。
如果您不希望这种情况发生,请不要将按钮设为 superview
的 subview 。例如,它们可以位于 superview
之上而不是它的 subview 。
关于iphone - 如何在 CAShapeLayer(Rounded-Recr cornered UIView) 上设置 maskToBounds 效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073879/
这个问题已经有答案了: How is the relation between UIView's clipsToBounds and CALayer's masksToBounds? (2 个回答)
在不使用 masksToBounds = true 的情况下,是否有可能为 View 容器设置圆角? signup.layer.cornerRadius = 10 signup.layer.masks
我试图在我的应用程序中实现容器 View Controller 设计。然而我被告知我需要支持 iOS 4.3 设备,所以 iOS 5 中引入的官方 View Controller API 目前不是一个
我有下一个代码; self.tableView.layer.cornerRadius = 4; self.tableView.layer.masksToBounds = NO; self.tableV
我是 Obj-C 开发的新手,目前遇到一个简单的问题。我正在尝试创建一个 NSView 并添加边框和阴影,我有以下代码: _view.wantsLayer = YES; CALayer *layer
问题 目前我正在尝试将自定义图像添加到 AnnotationPoint。我目前正在使用它,但我想为其添加圆边。当我尝试设置代码 maskToBounds = true 时,我抛出了一个错误(我相信是因
我在 UIScrollView 上有几个 UIButton。我希望按钮具有圆角,因此我对每个按钮调用 maskToBounds: 。当我这样做并在设备上运行时,滚动帧速率非常糟糕(它在模拟器上运行良好
这个问题在这里已经有了答案: UILabel layer cornerRadius negatively impacting performance (4 个答案) 关闭 7 年前。
我想让发光效果散布到 thisView 之外。 我使用这段代码制作了Half-Rounded rect cornered UIVew。 Round two corners in UIView 这是我的
我是一名优秀的程序员,十分优秀!