[英]UIBarButtonItem with rounded corners and shadow
我想在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;
和/或:
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
上不可能有圓角和陰影?
試試這個更新的代碼:
UIButton *useButton = [UIButton buttonWithType:UIButtonTypeCustom];
useButton.frame = CGRectMake(100, 430, 100, 40);
useButton.layer.masksToBounds = NO;
useButton.layer.cornerRadius = 10;
useButton.layer.shadowOffset = CGSizeMake(1.5, 1.5);
useButton.layer.shadowRadius = 0.5;
useButton.layer.shadowOpacity = 1.0;
useButton.layer.shadowColor = [UIColor blackColor].CGColor;
useButton.backgroundColor = [UIColor redColor];
UIBarButtonItem *useItem = [[UIBarButtonItem alloc] initWithCustomView:useButton];
[self.navigationItem setRightBarButtonItems:@[useItem]];
UIButton *useButton = [UIButton buttonWithType:UIButtonTypeCustom];
useButton.frame = CGRectMake(0, 0, 60, 30);
useButton.backgroundColor = [UIColor redColor];
useButton.layer.masksToBounds = NO;
useButton.layer.cornerRadius = 4;
useButton.layer.shadowOffset = CGSizeMake(0, 1.5);
useButton.layer.shadowRadius = 5;
useButton.layer.shadowOpacity = 1.0;
// useButton.layer.shadowColor = [UIColor blackColor].CGColor;
useButton.layer.borderColor = [UIColor blackColor].CGColor;
[self.view addSubview:useButton];
UIBarButtonItem *useItem = [[UIBarButtonItem alloc] initWithCustomView:useButton];
[self.navigationItem setRightBarButtonItems:@[useItem]];
btnname.layer.cornerRadius = 8.0;
btnname.layer.shadowOffset = CGSizeMake(2, 2);
btn.layer.cornerRadius = 2.0 ;
buttonName.layer.cornerRadius = 2;
buttonName.layer.borderWidth = 1;
buttonName.layer.borderColor = [UIColor blacColor].CGColor;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.