标签: cglayer

CGLayer和CALayer有什么区别和兼容性?

我很困惑CGLayerCALayer.它们看起来很相似,为什么还有单独的实现呢?什么之间的区别,以及兼容性,CGLayerCALayer

cocoa core-graphics calayer cglayer

52
推荐指数
1
解决办法
8762
查看次数

iOS:如何使用CGLayer支持Retina Display?

我在其委托方法中在CALayer上绘制图形drawLayer:inContext:.

现在我想支持Retina Display,因为图表在最新的设备上看起来很模糊.

对于我直接在CALayer传递的图形上下文中绘制的部分,通过设置CALayer的contentScale属性,我可以很好地绘制高分辨率,如下所示.

if ([myLayer respondsToSelector:@selector(setContentsScale:)]) {
    myLayer.contentsScale = [[UIScreen mainScreen] scale];
}
Run Code Online (Sandbox Code Playgroud)

但是对于我使用CGLayer的部分仍然模糊不清.

如何在高分辨率的CGLayer上绘制以支持Retina显示?

我想使用CGLayer重复绘制图形的相同绘图形状,以及切断超出图层边缘的图形线条.

我得到CGLayer通过CGLayerCreateWithContex从CALayer的通过图形上下文,并借鉴使用CG功能,如它的上下文CGContextFillPathCGContextAddLineToPoint.

我需要支持iOS 4.x和iOS 3.1.3,包括Retina和传统显示器.

谢谢,

库拉

cglayer ios retina-display

19
推荐指数
1
解决办法
6004
查看次数

AVPlayerLayer没有绑定到UIView框架

我正在尝试将AVPlayerLayer添加到UIView

    self.player = AVPlayer(URL: NSURL(fileURLWithPath: path!))
    self.playerLayer = AVPlayerLayer(player: player);
    self.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
    self.playerLayer.frame =  ctrVideo.bounds;
    self.ctrVideo.layer.addSublayer(playerLayer);
    player.play();
Run Code Online (Sandbox Code Playgroud)

这是视频的容器(蓝色):

这是观点:

约束: 约束:

最后结果: 在此输入图像描述

我无法弄清楚为什么视频没有绑定到UIVIew坐标.如果我把它绑定到控制器的超级视图中,那就没关系.

iphone xcode cglayer avplayerlayer swift

15
推荐指数
1
解决办法
6157
查看次数

如何在Swift中导入QuartzCore.framework?

我需要QuartzCore.framework来将borderColor添加到文本字段中,怎么样?

cglayer ios quartz-core swift

9
推荐指数
1
解决办法
7895
查看次数

Carbon窗口上的OpenGL 3.2上下文(OS Lion,Mono)

我正在尝试为OpenTK框架添加现代OS X支持.Mac OS Lion支持OpenGL 3.2 Core上下文.我可以使用CGL成功获得它.但是,我找不到将上下文绑定到Carbon窗口的直接方法.

以前的OpenTK实现使用aglSetDrawable方法.CGL没有公开替代,即使它有类似的无证CGLSetSurface.任何使用它的尝试都会返回错误代码1001,我无法找到它的描述.

有关在碳窗口上获取GL 3.2的任何帮助吗?

opengl macos macos-carbon cglayer osx-lion

8
推荐指数
1
解决办法
1124
查看次数

在iOS上,缓存绘制的屏幕图像并显示它的最快方法是什么?

与其让drawRect重绘上千点的每一次,我觉得有几个办法"缓存屏幕上的影像"和任何其他图纸,我们将添加到图像,并只显示图像时,是时候drawRect:

  1. 使用BitmapContext并绘制到位图,然后drawRect绘制此位图.

  2. 使用CGLayer和绘制CGLayerin drawRect,这可能比方法1更快,因为此图像缓存在图形卡中(它不会计入iOS上"内存警告"的RAM使用情况?)

  3. 绘制到a CGImage,并使用视图的图层:view.layer.contents = (id) cgimage;

所以似乎有三种方法,我认为CALayer方法(3)只能使用a CGImage来实现它. CALayer本身不能缓存屏幕图像,不像CGLayer(2)中那样.

方法(2)在这三种方法中是最快的,还有其他方法可以实现这一目标吗?我实际上计划动画几个屏幕图像,(循环5或6个),并尝试使用CADisplayLink60fps的最高帧速率.方法(1),(2)或(3)中的任何一个是否会使用显卡中的内存,因此不使用RAM,因此也不太可能从iOS获得内存警告?

calayer quartz-graphics cglayer ios

7
推荐指数
2
解决办法
4490
查看次数

iPhone - 编码和解码NSValue

所以我在这里读到我可以用CGLayerRef编译CGLayerRef到NSValue

NSValue *myCopy = [[NSValue alloc] initWithBytes:&myLayer objCType:@encode(CGLayerRef)]; 
Run Code Online (Sandbox Code Playgroud)

但是如何从myCopy重新创建CGLayerRef?

谢谢

iphone cocoa quartz-graphics cglayer

6
推荐指数
1
解决办法
731
查看次数

clipsToBounds和masksToBounds在分组的UITableViewCell中

我试图让我UITextView的角落被UITableViewCell包含它的分组的圆角掩盖.这是目前单元格的屏幕截图

UITextView内置分组UITableViewCell

这是我用来尝试防止角落重叠我的单元格边框的一些代码.我试过了两个

cell.contentView.layer.masksToBounds = YES;
cell.layer.masksToBounds = YES;  //tried this as a test, still doesn't work
detailTextView.clipsToBounds = YES;
[cell.contentView addSubview:detailTextView];
Run Code Online (Sandbox Code Playgroud)

cell.layer.masksToBounds = YES;
cell.contentView.layer.masksToBounds = YES;
detailTextView.clipsToBounds = YES;
[cell addSubview:detailTextView];
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,我错过了什么?

uikit cglayer ios quartz-core

6
推荐指数
1
解决办法
7524
查看次数

更改突出显示的UIButton BG颜色,但保留层角半径?

我正在UIButton使用1px xpp图像更改通过此类别方法的背景颜色:

- (void)setBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state
{
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, 1), NO, 0);
    [backgroundColor setFill];
    CGContextFillRect(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, 1, 1));
    UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext();
    [self setBackgroundImage:backgroundImage forState:state];
    UIGraphicsEndImageContext();
}
Run Code Online (Sandbox Code Playgroud)

但是,这会覆盖我的设置.layer.cornerRadius.我需要一个带圆角的按钮,但也需要一个可以突出显示的背景颜色.

有什么方法吗?角半径需要是动态的.

objective-c uibutton cglayer ios

6
推荐指数
1
解决办法
1648
查看次数

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