iOS7.x中clipsToBounds时UIToolBar失去半透明

Posted

技术标签:

【中文标题】iOS7.x中clipsToBounds时UIToolBar失去半透明【英文标题】:UIToolBar lose translucent when clipsToBounds in iOS7.x 【发布时间】:2015-02-24 20:08:17 【问题描述】:

通常我使用 UIToolBar 来伪造实时模糊效果,它对我来说效果很好。但是有一个地方我需要一个圆角工具栏,但是,每当我设置cornerRadius和clipsToBounds时,半透明(模糊)效果就消失了,我的工具栏变得透明了。

这是我的代码:

UIToolbar *blurView = [[UIToolbar alloc] initWithFrame:self.bounds];
blurView.barStyle = UIBarStyleBlack;
blurView.layer.cornerRadius = self.height / 2;
blurView.clipsToBounds = YES;
[self insertSubview:blurView atIndex:0];

这是clipsToBounds = YES时的屏幕截图,角是圆的,但模糊消失了。

但是如果我comment clipsToBounds out,模糊效果又回来了,但角落不再圆润了。

更奇怪的是这个问题只发生在 iOS7.x 中,在 iOS8.x 中一切正常,代码完全相同。

如果您想知道,这里是它在 ios8.x 上的外观以及在 iOS7.x 上的外观

我一直在 *** 和 Google 上搜索,找不到任何线索。请帮忙!

【问题讨论】:

blurView.layer.cornerRadius = self.height / 2 - 0.5; 【参考方案1】:

试试blurView.layer.cornerRadius = self.height / 2 - 0.5;

【讨论】:

那行得通...我不敢相信 iOS7 中的 UIToolbar 不采用四舍五入的数字,因为它是拐角半径...

以上是关于iOS7.x中clipsToBounds时UIToolBar失去半透明的主要内容,如果未能解决你的问题,请参考以下文章

将 UIView.layer.clipsToBounds = true 与 CABasicAnimation 结合使用时,并非所有像素都被裁剪

GestureRecognizer 开始时如何以编程方式关闭 clipsToBounds 属性?

clipsToBounds 与 masksToBounds 的区别与联系

NSView如何实现类似于UIView中的clipsToBounds功能(即不切割其SubView)

UIScrollView clipsToBounds 只能垂直应用吗?

clipsToBounds 在 UIStackView 中似乎没有效果