【问题标题】:How to get rid right side shadow but maintain bottom shadow on button如何摆脱右侧阴影但保持按钮上的底部阴影
【发布时间】:2024-01-20 11:17:02
【问题描述】:

我有循环创建一行按钮,我有以下代码来设置阴影。如何摆脱右侧阴影但保持底部阴影?

    button.imageView.layer.cornerRadius = 7.0f;
    button.layer.shadowRadius = 1.0f;
    button.layer.shadowColor = [UIColor blackColor].CGColor;
    button.layer.shadowOffset = CGSizeMake(0.0f, 2.0f);
    button.layer.shadowOpacity = 0.5f;
    button.layer.masksToBounds = NO;

【问题讨论】:

  • 为什么不在UIView 上添加每个按钮,并为该视图提供底部阴影,而不是为每个按钮提供阴影?
  • 我认为你不应该对每个按钮应用底部阴影,而是使用 UIView 并将所有按钮行放在其中并仅将底部阴影应用到该视图

标签: ios objective-c uibutton shadow


【解决方案1】:

回答

建议添加 UIView

navigationView = [[UIView alloc]initWithFrame:CGRectMake(X_BUFFER+5,Y_POS_BTN,self.view.frame.size.width-10,HEIGHT_BTN)];
navigationView.backgroundColor = [UIColor whiteColor];

[self.view addSubview:navigationView];

UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:self.navigationView.bounds];
self.navigationView.layer.masksToBounds = NO;
self.navigationView.layer.shadowColor = [UIColor blackColor].CGColor;
self.navigationView.layer.shadowOffset = CGSizeMake(5.0f, 5.0f);
self.navigationView.layer.shadowOpacity = 0.8f;
self.navigationView.layer.shadowPath = shadowPath.CGPath;

【讨论】: