标签: quartz-core

有边框的UITextView

我希望周围有一个薄的灰色边框UITextView.我已经浏览了Apple文档,但在那里找不到任何属性.请帮忙.

ios quartz-core

122
推荐指数
6
解决办法
8万
查看次数

CALayer带有透明孔

我有一个简单的视图(图片的左侧),我需要创建一些覆盖(图片的右侧)到这个视图.这个叠加应该有一些不透明度,所以下面的视图仍然是部分可见的.最重要的是,这个叠加层应该在它的中间有一个圆孔,所以它不会覆盖视图的中心(见下图).

我可以轻松创建一个这样的圆圈:

int radius = 20; //whatever
CAShapeLayer *circle = [CAShapeLayer layer];

circle.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0,radius,radius) cornerRadius:radius].CGPath;
circle.position = CGPointMake(CGRectGetMidX(view.frame)-radius,
                              CGRectGetMidY(view.frame)-radius);
circle.fillColor = [UIColor clearColor].CGColor;
Run Code Online (Sandbox Code Playgroud)

像这样的"完整"矩形覆盖:

CAShapeLayer *shadow = [CAShapeLayer layer];
shadow.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, view.bounds.size.width, view.bounds.size.height) cornerRadius:0].CGPath;
shadow.position = CGPointMake(0, 0);
shadow.fillColor = [UIColor grayColor].CGColor;
shadow.lineWidth = 0;
shadow.opacity = 0.5;
[view.layer addSublayer:shadow];
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将这两个层组合在一起,以便创建我想要的效果.任何人?我已经尝试了所有的东西......非常感谢你的帮助!

图片

objective-c calayer ios quartz-core

104
推荐指数
5
解决办法
5万
查看次数

iOS:以编程方式制作屏幕截图的最快,最高效的方法是什么?

在我的iPad应用程序中,我想制作UIView占据屏幕重要部分的屏幕截图.不幸的是,子视图非常嵌套,因此需要很长时间才能制作屏幕截图并使页面随后变形.

有没有比"通常"更快的方式?

UIGraphicsBeginImageContext(self.bounds.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想避免缓存或重构我的观点.

performance core-graphics graphicscontext ios quartz-core

77
推荐指数
3
解决办法
3万
查看次数

如何制作圆形UIView

我想制作一个圆形的UIView或UIImageView.或者我可以改变使用滑块大小的圆圈,以及带有选择器视图的颜色.

iphone geometry uiview uiimageview quartz-core

52
推荐指数
6
解决办法
6万
查看次数

如何在CALayer中绘制径向渐变?

我知道CAGradientLayer目前不支持径向渐变,只能选择kCAGradientLayerAxial.

我想要下面的东西:

在此输入图像描述

我一直在寻找这个问题,并发现有一种解决方法.但这些解释对我来说并不清楚.所以我想知道我是否可以使用径向渐变CAGradientLayer,如果是,那么如何做呢?

objective-c calayer ios quartz-core

26
推荐指数
3
解决办法
2万
查看次数

如何在CALayer.contents中添加Stretchable UIImage?

我有一个CALayer,我想添加一个可伸缩的图像.如果我这样做:

        _layer.contents = (id)[[UIImage imageNamed:@"grayTrim.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 15.0, 0.0, 15.0)].CGImage;
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为图层的默认contentGravity是kCAGravityResize.

我已经读过这可以使用contentsCenter完成,但我似乎无法弄清楚我将如何使用它来实现我的CALayer中的拉伸图像.

欢迎任何想法!

霍拉丘

calayer uiimage ios ios5 quartz-core

21
推荐指数
1
解决办法
5280
查看次数

更改设备方向时重新绘制自定义uiview

  1. 如果我在里面绘制我的图表- (void)drawRect:(CGRect)rect就足以设置[ _chartView setContentMode:UIViewContentModeRedraw]并且当设备改变它的定向时将调用此方法,并且可以为我的图表计算新的中心点.
  2. 如果我使用子视图创建一个视图- (id)initWithFrame:(CGRect)frame,然后在视图控制器中添加它[self.view addSubview:chartView];.在这种情况下我如何处理轮换以重绘我的图表?

core-graphics uiview ios quartz-core

20
推荐指数
3
解决办法
2万
查看次数

在完成之前取消UIView animateWithDuration

我在我的项目中有这个代码:

- (void) fadeImageView {
    [UIView animateWithDuration:1.0f
                          delay:0
                        options:UIViewAnimationCurveEaseInOut
                     animations:^{
                         self.imageView.alpha = 0.0f;
                     }
                     completion:^(BOOL finished) {
                         //make the image view un-tappable.
                         //if the fade was canceled, set the alpha to 1.0
                     }];

}
Run Code Online (Sandbox Code Playgroud)

但是,有时我想在imageview变得不可见之前取消此操作.有没有办法取消动画中期动画?

uiview uianimation ios quartz-core

18
推荐指数
3
解决办法
1万
查看次数

CAReplicatorLayer背后的魔力是什么?

我发现有趣的CAReplicatorLayer:

  • 它可以非常有效地多次显示CALayer和不同的变换(如何?)
  • 似乎它以某种方式重复使用"后备存储"来复制图层,甚至对它应用一些颜色(如何?)

我想了解源代码或了解CAReplicatorLayer背后的魔力.我想有一个类似于CAReplicatorLayer的CALayer类,但有更多的控制权.我想对每个复制的实例单独控制转换.

所以以一种完全不同的方式问道:是否有可能获得CALayer的"后备商店"并显示它,但我想要多次我想要?

(通过"支持商店"我的意思是CALayer/UIView的渲染纹理.我不太了解CoreAnimation/QuartzCore引擎盖下发生了什么).


为什么我不看其他替代方案,例如将CALayer渲染为UIImage:

  • 性能
  • 在转换过程中,内容是动态的/经常变化的
  • 从另一个方面做到这一点真是令人敬畏!

core-animation calayer ios careplicatorlayer quartz-core

18
推荐指数
1
解决办法
1766
查看次数

Xcode 5中不需要Quartz Core Import?

今天偶然发现了这一点.如果我尝试访问CALayer没有导入,我在Xcode 4.6中收到警告<QuartzCore/QuartzCore.h>.但是在Xcode 5中可以正常工作.

objective-c ios quartz-core xcode5

18
推荐指数
1
解决办法
5772
查看次数