- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
图片:http://i.stack.imgur.com/pbzar.png
我想获得 90-270 度的文本(文本“Aroma 7”到“Aroma 17”),旋转 180 度。
我的代码:
for (int i=0; i<24; i++) {
CGContextSaveGState(context);
CGContextRef context = UIGraphicsGetCurrentContext();
NSString *str = [NSString stringWithFormat:@"Aroma %d", i];
CGContextTranslateCTM(context, radius, radius);
CGContextRotateCTM(context, i * 15 * M_PI/180.0);
[[UIColor whiteColor] set];
CGContextTranslateCTM(context, - (radius), -(radius));
CGSize size = [str sizeWithFont:[UIFont fontWithName:@"Helvetica" size:12.0]
constrainedToSize:rect.size
lineBreakMode:(NSLineBreakByWordWrapping)];
[str drawAtPoint:CGPointMake(((radius * 2) - 10) - size.width, radius) withFont:[UIFont fontWithName:@"Helvetica" size:12.0]];
CGContextRestoreGState(context);
}
感谢您的帮助!
最佳答案
这应该会产生想要的输出:
for (int i=0; i<24; i++) {
CGContextSaveGState(context);
CGContextRef context = UIGraphicsGetCurrentContext();
NSString *str = [NSString stringWithFormat:@"Aroma %d", i];
CGContextTranslateCTM(context, radius, radius);
CGContextRotateCTM(context, i * 15 * M_PI/180.0);
[[UIColor whiteColor] set];
CGSize size = [str sizeWithFont:[UIFont fontWithName:@"Helvetica" size:12.0]
constrainedToSize:rect.size
lineBreakMode:(NSLineBreakByWordWrapping)];
CGContextTranslateCTM(context, radius-10-size.width/2, size.height/2); // (1)
if (i >= 7 && i <= 17)
CGContextRotateCTM(context, M_PI); // (2)
[str drawAtPoint:CGPointMake(-size.width/2, -size.height/2) withFont:[UIFont fontWithName:@"Helvetica" size:12.0]];
CGContextRestoreGState(context);
}
想法是将坐标系的原点移动到要绘制文本的矩形的中心(参见(1)
)。然后您可以简单地将文本旋转 180 度(参见 (2)
)。
这是我的测试程序的输出:
关于ios - 翻转 CGContext 上的旋转文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14607259/
我在为 MKMapOverlayView 创建的 CGContext 中执行一些 CG 绘图操作。在我的上下文中绘制之后,我创建了一个图像并将其粘贴到 MapKit 提供的上下文中。 - (void)
我有一个 CGBitmapContext (bitmapContext),我想将它的一些矩形部分 (rect) 绘制到当前 CGContext (context) >). 现在我就是这样做的: CGC
各位,这是我的代码: - (void) renderPageAtIndex:(NSUInteger)index inContext:(CGContextRef)ctx { //backgrou
我正在使用代码在 CGContext 上显示 pdf 页面 - (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)context {
在我的 iPhone 项目中,我有一个 UIView,我在其中实现了 drawRect 方法: - (void)drawRect:(CGRect)rect { CGContextRef con
我正在尝试在 UIView draw(_:) 中创建自己的 CGContext。这里: override func draw(_ rect: CGRect) { //let c
我正在UIView drawRect函数中绘制一个形状,该形状涉及剪切路径,然后在后面添加彩色块,以便颜色具有剪切路径的形状。但是,由于某些原因,路径的线条无法顺利伸出;如果抗锯齿功能无法正常使用,
我正在使用以下代码缩小UIImage: let image = UIImage(contentsOfFile: imageUrl.path!)!.CGImage let
我正在尝试使用 Core Graphics 从另一个线程在自定义 UIView 中进行无限绘图。无法获取当前的 CGContext,因此我尝试创建一个新的。但我不知道如何将其应用到 View 中。 这
在测试我的应用程序是否存在任何错误时,我注意到在模拟器中,当我调用其中一个函数将图像设置为 UIImageView 时,会抛出一堆 CGContext 错误,并且图像永远不会被设置。然而,在我的设备上
我有一个 UIView,它有 3 个自定义 subview ,其类(目前)称为 LVStemp 并表示树中的节点。 LVStemp 的框架比节点本身大,因为它还包含一些位于节点外部的绘图(尚未编码)。
据我所知,您可以使用两种方法在 CGContext 中绘制渐变,即 drawLinearGradient 和 drawRadialGradient。我正在寻找一种定义椭圆渐变的方法,我可以在其中定义
我正在尝试初始化 CGContext ( API ) let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirector
问题:如何在 CGContext 下显示背景图片? 我使用 Storyboard创建了一个 View Controller ,并放置了一个带有全屏背景图像的 View 。然后,使用相同的 View C
我正在尝试绘制以相等角度分隔的矩形。为此,我首先绘制一个 CGPath,然后对上下文应用转换。我连续做了5次。这是我的代码和输出。如您所见,屏幕截图中的输出不正确,矩形倾斜,不知道为什么。需要知道我做
我正在用 CGContext 渲染一个 NSAttributedString,但是当它渲染文本时是颠倒的 :( 这是我想出的: override func draw(with box: PDFDisp
我编写了一个渲染函数,每 1/60 秒调用一次。如下所示。本质上,它以使用正弦的放射状图案呈现 40 条线。看起来像这样http://imgur.com/a/kPKtT .当我在我的 iPhone 6
我有这段代码可以呈现一个内部带有动态文本的自定义滑动条 handle 。问题是我无法将其缩放到视网膜分辨率。它可以在所有设备上正确绘制并且大小合适,但在视网膜上分辨率较低。如何更改此代码以使最终图像分
当具有不同颜色的路径使用 CGContext 绘制在先前路径的顶部时,如何删除路径? 最佳答案 CGContextBeginPath() 在创建新路径的过程中总是丢弃之前的路径。 关于ios - CG
伙计们! 我需要绘制一些图像到 CGContext。这是相关代码: CGContextSaveGState(UIGraphicsGetCurrentContext()); CGContextRef c
我是一名优秀的程序员,十分优秀!