问题标签 [quartz-graphics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 移动时禁用 CALayer 内容的重绘(iphone)
我有一个带有大量 CALayers (~1000) 的 UIView,每个都有一个小图像作为其内容。这个 UIView 是一个滚动视图的子视图(实际上它是另一个视图的子视图,它是滚动视图的子视图)。这在开始时相对较快(几秒钟)。但是,当我在滚动视图中滚动时,帧速率非常低。
每次滚动时是否都试图重绘每个 CALayer 的内容?有没有办法禁用它?有其他事情发生吗?
注意:我在 UIView 中将 clearsContextBeforeDrawing 设置为 NOo,这有所帮助,但仍然比我预期的要慢得多
iphone - 如何使用 Quartz 和 CGLayers 在背景上绘制精灵?
我是 Quartz 的新手,我正在努力理解苹果所说的这些东西非常简单明了。
我创建了两个 CGLayer:一个用于固定背景,另一个用于精灵。我想让这个精灵移动。
背景上下文和精灵上下文都是在屏幕外绘制的,我希望两者都出现在屏幕上。
为此——我不确定这是否是正确的方法——我做了以下事情:
- 我创建了一个 UIImageView
我已经使用捕获了图层的内容
结果图像 = UIGraphicsGetImageFromCurrentImageContext();
myView.image = 结果图像;
这会在屏幕上显示两个石英层的内容。
现在我有两个问题:
- 这种方法慢得要命
- 当我移动图层时,我必须重复上述代码,即使这样做,图层也不会移动!!!!
所以,请 iPhone 大师们,请告诉我是否有另一种方法可以用石英做到这一点,以及我必须做什么才能看到精灵移动!!!!
谢谢你的帮助!
objective-c - WebView 实现中未加载浏览器插件
我有一个我正在尝试编写的 Cocoa 应用程序,它显示一个网页。这个网页在背景中有一个嵌入的石英组合,在 Safari 中播放和工作,但它确实显示在我的 Cocoa 应用程序中(它只是在背景中显示缺少的插件图标)。
奇怪的是,它可以在我正在测试它的另一台计算机上运行。我是否缺少可能导致这种情况的框架或插件?
另一个注意事项:似乎没有插件可以工作。例如,当 WebView 显示 youtube.com 时,它无法播放视频,因为它说没有安装 Flash 插件。同样,相同的代码可以在另一台计算机上运行,但不能在这台计算机上运行。
谢谢!任何帮助将不胜感激!
iphone - 保存和恢复 CGContext
我正在尝试保存和恢复 CGContext 以避免第二次进行繁重的绘图计算,但我得到了错误<Error>: CGGStackRestore: gstack underflow
。
我究竟做错了什么?这样做的正确方法是什么?
iphone - 将 iPhone 应用程序屏幕染成红色
我正在尝试在我的 iPhone 应用程序的所有屏幕上添加红色调。我在位图上进行了实验,发现我通过使用 Multiply (kCGBlendModeMultiply) 将深红色合成到屏幕图像上来获得我想要的效果。
所以问题是如何在 iPhone 上实时高效地做到这一点?
一种愚蠢的方法可能是获取当前屏幕的位图,合成到位图中,然后将合成的位图写回屏幕。这似乎几乎肯定会太慢。此外,我需要某种方式知道何时重绘了屏幕的一部分,以便更新着色。
我几乎可以通过在所有内容上方放置一个红色、半透明、全屏的 UIView 来获得我想要的效果。在我的进一步干预中,这会将所有东西都染成红色,但效果比复合材料的结果要“浑浊”得多。
那么那里的任何向导是否知道我可以使用某种机制以类似于半透明红色 UIView 的方式在应用程序上自动合成红色?
objective-c - 使用 CGEventCreateMouseEvent() 执行双击
我正在使用以下代码来模拟鼠标点击:
我可以使用基本相同的代码通过更改进行控制单击(右键单击):
kCGEventLeftMouseDown
kCGEventLeftMouseUp
kCGMouseButtonLeft
到他们各自的“权利”事件。该函数看起来像:
但是,双击呢?我尝试发送 2 次左键单击并连续两次调用 PostMouseEvent() 但没有运气。如何执行双击?
谢谢!
iphone - UIImageWriteToSavedPhotosAlbum 保存为透明的PNG?
我正在使用 UIImageWriteToSavedPhotosAlbum 将 UIImage 保存到用户的相册。问题是图像没有透明度并且是JPG。我已经正确设置了像素数据以具有透明度,但似乎没有办法以支持透明度的格式保存。想法?
编辑:没有办法做到这一点,但是还有其他方法可以将 PNG 图像传递给用户。其中之一是将图像保存在 Documents 目录中(如下所述)。完成此操作后,您可以通过电子邮件发送它,将其保存在数据库中等。除非它是有损非透明 JPG,否则您无法将其放入相册(目前)。
iphone - 无法从 iPhone 相机后期制作图像?
在 iPhone 3GS 上,相机拍摄的图像有 2048x1536 像素。如果我的数学是正确的,在 CGLayer 上打开这个图像将消耗 12.5 MB。
Springboard 将终止任何超过 12 mb 的应用程序(至少这是发生在我身上的事情)。
使用 CGContextDrawLayer 之类的函数操作此图像至少会再消耗 12 mb。
这是 24 MB。
如何在不终止程序的情况下在 iPhone 上操作这些图像?
有什么方法可以在不减小尺寸的情况下减少相机拍摄的图像的占用空间?
任何线索?谢谢。
iphone - 双击缩放时注释视图消失的问题
我在 iPhone 上的 MapKit 中遇到了注释视图的问题。我设法在地图上绘制自定义注释视图 - 那里没问题。我什至设法在拖动或缩放后重新绘制它们。但是,在某些情况下重绘不起作用:例如双击缩放。
我附上了一些代码,在地图上的特定位置绘制了几个矩形,当我使用两指手势进行缩放时,一切正常(即重新绘制矩形)。但是,当我双击时,矩形消失了。更奇怪的是,所有方法都按照它们应该的顺序被调用,最后,甚至 drawRect 也被调用了——但是没有绘制矩形。
所以这是代码,请自己尝试 - 两指缩放有效,但双击缩放无效:
PlaygroundViewController.h
PlaygroundViewController.m
领土.h
领土.m
领土视图.h
领土视图.m
任何帮助表示赞赏。这是压缩项目:链接