【问题标题】:Shadow on left and right side左右两侧有阴影
【发布时间】:2012-08-08 14:42:39
【问题描述】:

我正在为CALayer 添加一个阴影,但我希望这个阴影只出现在视图的左侧和右侧。有谁知道这是否可能?

目前,我正在添加这样的阴影:

view.layer.shadowColor = [UIColor blackColor].CGColor;
view.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
view.layer.shadowOpacity = 1.0f;
view.layer.shadowRadius = 4.0f;
view.layer.shadowPath = [UIBezierPath bezierPathWithRect:view.bounds].CGPath;

【问题讨论】:

  • // 左阴影 view.layer.shadowOffset = CGSizeMake( - 1.0f, 0.0f); // 右阴影 view.layer.shadowOffset = CGSizeMake(1.0f, 0.0f);

标签: iphone calayer shadow


【解决方案1】:

您将阴影路径设置为视图的边界。尝试获取该矩形,并使用 CGRectInset 扩展它(x 值为负,y 值为 0)。这将为您提供一个超出图层左侧和右侧的阴影路径。您可能需要修改半径或稍微插入 y 值以防止阴影出现在上方和下方。

【讨论】:

  • 我必须将框架设置为以下内容以隐藏顶部和底部框架。这样做的问题是左右阴影也变得更小(不那么高)。 CGRect shadowFrame = CGRectInset(view.bounds, -1.0f, 7.0f);
  • 正如我所说,您可能还需要修改半径。如果它没有给你你想要的效果,我认为你必须设置一个剪切路径并手动绘制阴影。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-13
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多