如何摆脱右侧阴影但保持按钮上的底部阴影

Posted

技术标签:

【中文标题】如何摆脱右侧阴影但保持按钮上的底部阴影【英文标题】:How to get rid right side shadow but maintain bottom shadow on button 【发布时间】:2018-03-13 06:39:52 【问题描述】:

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

    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 并将所有按钮行放在其中并仅将底部阴影应用到该视图 【参考方案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;

【讨论】:

以上是关于如何摆脱右侧阴影但保持按钮上的底部阴影的主要内容,如果未能解决你的问题,请参考以下文章

如何仅在uiview的底部和右侧添加阴影?

iOS CSS 阴影问题

如何在表格视图单元格内的视图顶部和底部放置阴影?

Kivy:如何摆脱 TextInput 中奇怪的阴影外观?

移除 UISearchBar 的上下边框和阴影?

如何在为拇指使用自定义绘图时保持切换拇指阴影/高度?