如何在iOS中给像卡一样的影子
我想像我的iOS应用程序中的图像一样给出类似卡片的阴影效果
我在UITableViewCell上需要这个图像对我来说也不适用于具有阴影效果的单元格之间的间隙
在表格视图单元格中使用容器视图并指定标记99.保持单元格高度比卡片(容器视图)大一些。
并为您的卡片视图赋予阴影
UIView* shadowView = [cell viewWithTag:99]; shadowView.backgroundColor=[UIColor colorWithRed:228.0/255.0 green:228.0/255.0 blue:228.0/255.0 alpha:0.5]; [shadowView.layer setCornerRadius:5.0f]; [shadowView.layer setBorderColor:[UIColor lightGrayColor].CGColor]; [shadowView.layer setBorderWidth:0.2f]; [shadowView.layer setShadowColor:[UIColor colorWithRed:225.0/255.0 green:228.0/255.0 blue:228.0/255.0 alpha:1.0].CGColor]; [shadowView.layer setShadowOpacity:1.0]; [shadowView.layer setShadowRadius:5.0]; [shadowView.layer setShadowOffset:CGSizeMake(5.0f, 5.0f)];
swift 3.0上的即兴解决方案:
extension UIView { func setCardView(view : UIView){ view.layer.cornerRadius = 5.0 view.layer.borderColor = UIColor.clear.cgColor view.layer.borderWidth = 5.0 view.layer.shadowOpacity = 0.5 view.layer.shadowColor = UIColor.lightGray.cgColor view.layer.shadowRadius = 5.0 view.layer.shadowOffset = CGSize(width:5, height: 5) view.layer.masksToBounds = true } }
用法:
在cellForRowAt indexPath上:
var cell = UITableViewCell() cell.contentView.setCardView(view: cell.contentView)
也许有人需要Swift版本
func setCardView(view : UIView){ view.layer.masksToBounds = false view.layer.shadowOffset = CGSizeMake(0, 0); view.layer.cornerRadius = 1; view.layer.shadowRadius = 1; view.layer.shadowOpacity = 0.5; }
你可以使用这个代码给出阴影效果……
UIView *viewTemp= (UIView *)view; viewTemp.layer.shadowColor = [UIColor darkGrayColor].CGColor; viewTemp.layer.shadowOffset = CGSizeMake(0, 2); viewTemp.layer.shadowOpacity = 0.8; viewTemp.layer.shadowRadius = 3; viewTemp.layer.masksToBounds = NO;