相关疑难解决方法(0)

如何在UIView下绘制阴影?

我想UIView在Cocoa Touch 的底部边缘画一个阴影.我明白我应该用CGContextSetShadow()它画阴影,但Quartz 2D编程指南有点模糊:

  1. 保存图形状态.
  2. 调用函数CGContextSetShadow,传递适当的值.
  3. 执行要应用阴影的所有绘图.
  4. 恢复图形状态

我在UIView子类中尝试了以下内容:

- (void)drawRect:(CGRect)rect {
    CGContextRef currentContext = UIGraphicsGetCurrentContext();
    CGContextSaveGState(currentContext);
    CGContextSetShadow(currentContext, CGSizeMake(-15, 20), 5);
    CGContextRestoreGState(currentContext);
    [super drawRect: rect];
}
Run Code Online (Sandbox Code Playgroud)

..但这对我不起作用,我有点不知道(a)下一步该去哪里,(b)如果有什么我需要做的让我UIView做这个工作?

iphone cocoa-touch core-graphics objective-c ios

347
推荐指数
9
解决办法
24万
查看次数

UIView在视图框架之外绘制阴影

我有一个要求,我必须在视图的框架之外绘制视图的阴影.我们已经有了复杂的视图层次结构/分层,现在无法更改视图的框架和布局以适应viewController视图边界内的阴影.

1.我有点关注我是否可以通过以下方法在视图之外绘制阴影:

" 你还可以创建一个投影,它将基于视图中绘制的任何内容的alpha分量.通常这会在视图边缘产生阴影. 这个示例代码在UILabel上:

label.layer.shadowColor = [UIColor blackColor].CGColor;
label.layer.shadowOpacity = 1.0;
label.layer.shadowRadius = 5.0;
label.layer.shadowOffset = CGSizeMake(0, 3);
label.clipsToBounds = NO;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您需要将clipToBounds设置为NO才能显示视图框外的阴影.接下来,我将向您展示如何实际组合圆角和阴影,因为我确信这就是您现在真正想要做的事情."

参考:http://bynomial.com/blog/?p = 52

2.现在,我遇到了一些线索,告诉我们不鼓励在视图外部绘制阴影.但没有给出任何解释: 我怎样才能画出超出UIView界限的阴影?

是否有任何理由为什么我们不应该在视图的框架外绘制阴影(CALayer)?或者,第一种方法是否可以?

谢谢,拉吉

cocoa-touch calayer uikit uiview ios

5
推荐指数
1
解决办法
3628
查看次数

标签 统计

cocoa-touch ×2

ios ×2

calayer ×1

core-graphics ×1

iphone ×1

objective-c ×1

uikit ×1

uiview ×1