我想在UIBarButtonItem
上实现圆角和阴影效果。
UIButton *useButton = [UIButton buttonWithType:UIButtonTypeCustom];
然后我尝试设置阴影和圆角:
useButton.layer.masksToBounds = NO;
useButton.layer.cornerRadius = 4;
useButton.layer.shadowOffset = CGSizeMake(0, 1.5);
useButton.layer.shadowRadius = 0.5;
useButton.layer.shadowOpacity = 1.0;
useButton.layer.shadowColor = [BSTCMColorUtility colorFromHexString:@"#AFAFAF"].CGColor;
最后,我创建了UIBarButtonItem
:
UIBarButtonItem *useItem = [[UIBarButtonItem alloc] initWithCustomView:useButton];
[self.navigationItem setRightBarButtonItems:@[useItem]];
我的圆角没有出现,但我得到了阴影。
如果我添加:
useButton.clipsToBounds = YES;
And/or:
useButton.layer.masksToBounds = YES;
我想实现圆角效果,但是没有阴影。所以我尝试添加一个子层。
CALayer *useButtonShadowLayer = [CALayer new];
useButtonShadowLayer.frame = useButton.frame;
useButtonShadowLayer.cornerRadius = 4;
useButtonShadowLayer.backgroundColor = [UIColor whiteColor].CGColor;
useButtonShadowLayer.shadowOffset = CGSizeMake(0, 1.5);
useButtonShadowLayer.shadowRadius = 0.5;
useButtonShadowLayer.shadowOpacity = 1.0;
useButtonShadowLayer.shadowColor = [BSTCMColorUtility colorFromHexString:@"#AFAFAF"].CGColor;
useButton.layer.cornerRadius = 4;
useButton.layer.masksToBounds = YES;
UIView *parent = useButton.superview;
[parent.layer insertSublayer:useButtonShadowLayer below:useButton.layer];
它似乎无法工作,我看不到阴影。但我能得到圆角。
在UIBarButtonItem
/UIButton
上既要实现圆角又要实现阴影,这是不可能的吗?
masksToBounds
设置为NO
,则圆角半径将不再可见。 - shim