Tag: 核心graphics

为整个应用程序应用圆angular

我怎样才能实现应用到整个视图的圆angular如截图所示(请注意导航栏和键盘的angular都圆了)? 我试过为window.layer和window.rootViewController.view.layer设置cornerRadius = 10和masksToBounds = YES ,但只有底部的视图angular落变圆,导航栏仍然保持正方形。 更新。 将cornerRadius设置为window.layer实际上也会在顶部添加圆angular,但是除非cornerRadius大于20,否则这些angular在状态栏下不可见。

在iPad上的3D旋转木马效果

我正试图在iPad上实现一个3D旋转木马,包含UIViews,类似于这里显示的效果。 我也经历了许多类似的问题,但没有find任何满意的答案,也没有find答案。 我试图通过修改coverflowanimation来实现这个效果,但是它并没有给出那种光滑的效果。 有没有人实现了这个?(通过石英和OpenGL开放的build议)

内存泄漏时使用CGImageCreateWithJPEGDataProvider

我使用仪器(泄漏)来检测我的应用程序的内存泄漏。 它有时会说在我的一个方法中有内存泄漏。 我不确定是否有泄漏,如何解决。 CGImageCreateWithJPEGDataProvider方法主要导致内存泄漏。 有时CGDataProviderCreateWithData也会导致内存泄漏。 但我不知道为什么。 A类的泄漏方法如下: – (ResultHolder *)decodeData:(UInt8 *) data withOffset:(int) offset { const int length = [IOUtilities byteArrayToIntWithData:data Offset:offset+18]; UInt8 *buffer = malloc(length*sizeof(UInt8)); memcpy(buffer, data+offset+22, length); // sometimes memory leak in this line CGDataProviderRef jpgDataProvider = CGDataProviderCreateWithData(NULL, buffer, length, freeData); // mainly memory leak in this line. CGImageRef image = CGImageCreateWithJPEGDataProvider(jpgDataProvider, NULL, […]

用CoreGraphics绘制半圆

我知道如何用CGPath绘制线条和形状。 但我不知道如何绘制这个符号的电路图 我应该写什么代码来获得半圆形状? 这是我迄今为止: – (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(context, 5.0); CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor); CGContextMoveToPoint(context, 60, 80); CGContextAddLineToPoint(context, 120, 80); CGContextMoveToPoint(context, 120, 80); CGContextAddArc(120,80,M_PI,M_PI/2); CGContextMoveToPoint(context, 200, 80); CGContextAddLineToPoint(context, 300, 80); CGContextStrokePath(context); }

在iOS上,从上下文创build一个图层并获取图层的上下文之后,这些上下文又是如何相互关联的?

我们可以从当前的graphics上下文创build一个图层,然后获取图层的上下文: CGContextRef context = UIGraphicsGetCurrentContext(); CGLayerRef layer = CGLayerCreateWithContext(context, CGSizeMake(self.frame.size.width, self.frame.size.height), NULL); CGContextRef contextOfLayer = CGLayerGetContext(layer); 所以我们现在有两个上下文: context和contextOfLayer 。 这两种情况如何相互关联? contextOfLayer实际上是context一部分, context有一个图层上下文指针的数组? 如果我使用NSLog(@"%p", …)打印出他们的地址,他们有不同的地址,所以它们不是同一个对象。 而且我认为contextOfLayer不会影响上下文堆栈,所以它只是一个独立的上下文而已?

如何在alpha 2中绘制alpha <1的线条

毫无疑问,这可能是一个重复的问题,但我无法从这里的任何职位得到适当的解决办法。 所以我张贴这个新的职位,希望我得到一些解决scheme。 我的绘图应用程序,我想给不透明的线条绘制function。 但是当我把颜色赋值为alpha时,我会在这行之间得到重叠点。 有些地方,我发现在两个视图中绘制解决了这个问题,但我无法理解这背后的逻辑。 我正在使用普通的石英二维码来画线触摸事件。

使用Core Graphics在Objective-C(IOS)中绘制angular度/angular度/“圆锥形”/“弧光”渐变

我试图绘制一个“锥形”/“弧光”渐变(我不知道什么是正确的术语) (Photoshop称之为“angular度”渐变 – 友好的邻居stackoverflow编辑器)使用Objective-C (IOS),非常像以下线程中显示的图像。 经过几天的search和searchnetworking无济于事,我决定在这里寻求帮助。 关于我在做什么的一点背景。 我的目标是创build一个自定义的UIView,这是一个圆形的进度条,基本上是一个戒指,有点类似于在TweetBot iPhone应用程序中看到的活动指示器(显示当你拖动刷新,这可以在这里看到,在17左右-18秒,在iPhone屏幕上方)。 我想要进度指示器(圆环的填充)是一个简单的两个颜色渐变,可以通过编程设置,视图可以resize。 用“跟随”圆弧的渐变填充圆环形状是我卡住的地方。 我从谷歌search得到的答案,阅读苹果的梯度上的核心graphics文档和searchSO是要么径向渐变或线性/轴向渐变,这不是我想要实现的。 上面链接的线程build议使用预先制作的图像,但这不是一个选项,因为渐变的颜色应该是可设置的,视图应该可以resize,进度条的填充并不总是100%显着将成为如上图所示的渐变状态)。 我想出的唯一解决scheme是“手动”绘制渐变,所以如果不使用CGGradientRef ,请在圆形path中剪裁单个纯色填充的渐变的小片。 我不知道当这个栏被animation时它的performance如何,应该不是那么糟糕,但这可能是一个问题。 所以我的第一个问题: Objective-C(IOS)中绘制锥形/弧形渐变的方法比我提出的解决scheme更容易/不同吗? 第二个问题: 如果我必须在我的视图中使用我提出的解决scheme手动绘制渐变,那么我如何确定或计算渐变的每个颜色“切片”的值(HEX或RGBA)试图画,如下图所示。 (不能链接图像) 渐变片图

用Swift 3.0实时绘制一条线

我试图画一个UIImageView。 随着Swift 1.2,我能够得到它的工作,但我不得不将其转换为3.0,我不能得到它的工作。 它需要做的就是用你的手指画出你在屏幕上画的东西。 代码没有提供任何错误,只是不显示任何内容。 variables; var lastPoint = CGPoint.zero var red: CGFloat = 0.0 var green: CGFloat = 0.0 var blue: CGFloat = 0.0 var brushWidth: CGFloat = 10.0 var opacity: CGFloat = 1.0 var swiped = false 代码; override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { swiped = false if let touch […]

iOS:CGImageCreateWith DataProvider导致分段错误

我正面临一个奇怪的问题。 我正在开发一个使用libzbar的iOS命令行条形码扫描器工具(是的,这是为越狱设备)。 除了当我试图使用CGImageCreateWithPNGDataProvider()或CGImageCreateWithJPEGDataProvider()方法从文件中获取CGImageRef , CGImageRef我的5.1.1 iPad上这两个函数抛出了段CGImageRef ,否则CGImageCreateWithJPEGDataProvider()正常。 这个问题不在我的自定义类ZBarScanner ,因为如果我使用UIImage来获取图像数据, UIImage *uiImage = [UIImage imageWithContentsOfFile:fname]; CGImageRef image = uiImage.CGImage; 那么它工作正常,打印存储在条码中的数据。 此外,PNG和JPEG图像格式良好 – 我可以使用设备上的文件浏览器查看它们,并尝试了其他几种图像。 我甚至试图省略所有的CFRelease()函数调用并release消息,以避免悬挂指针。 这是我的代码: #define LOG() NSLog(@"Reached line %d", __LINE__) int main(int argc, char **argv) { if (argc != 2) return 1; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; LOG(); // line 21 NSString *fname = […]

SceneKit剔除飞机

我在SCNView中有一个SCNScene渲染。 我有一些在场景中呈现/移动的* .dae模型。 我有一个透明的立方体,当我的一个模型落在它后面时,我希望模型不被渲染,因为此刻立方体是透明的,可以通过立方体看到它。 是否有任何属性/设置/着色器可以应用到透明立方体,以便它后面的任何东西都不被渲染? 例: 我的眼睛是绿色的圆点,立方体是蓝色的方形,我的模型是红色的圆圈,然而,立方体隐藏的圆圈部分是紫色的……这实际上是隐形的。 蓝色的广场也是不可见的。 这个开发者有一个遮挡着色器,它可以做我需要的,但它是Unity: https : //youtu.be/MK3D91kCKzM 亲切的问候 克里斯