gpt4 book ai didi

iOS 在形状中心绘制文本

转载 作者:可可西里 更新时间:2023-11-01 03:23:44 25 4
gpt4 key购买 nike

我正在尝试在 iOS 中的形状中心绘制文本,例如 Microsoft Office 的插入形状,请参阅:https://www.dropbox.com/s/cgqyyuvy6hcv5g8/Screenshot%202014-01-21%2013.48.17.png

我有一个用于形成形状的坐标数组,可以很好地创建实际形状。

我的第一个策略是关注这个 stackoverflow 问题:Core Text With Asymmetric Shape on iOS但是我只能让它在形状底部绘制文本。有什么方法可以使文本垂直和水平居中吗?

然后我查看了新的 TextKit,但我被困在如何子类化 NSTextContainer 以接受 CGPath 或坐标数组来创建文本容器画在里面。

我的备用解决方案是使用 Core Text 在形状的中心坐标处绘制文本,但是这会导致文本在某些形状(例如直角三角形)上绘制在形状之外。

或者,是否有任何其他方法可以用来让一些文本稍微位于形状的中心?

最佳答案

我从这些答案和相关问题中挑选出来——没有一个是真正令人满意的——并提出了这个简单的解决方案:

    UIGraphicsBeginImageContext(CGSize.init(width: imageWidth, height: imageHeight))

let string = "ABC" as NSString

let attributes = [
NSFontAttributeName : UIFont.systemFontOfSize(40),
NSForegroundColorAttributeName : UIColor.redColor()
]

// Get the width and height that the text will occupy.
let stringSize = string.sizeWithAttributes(attributes)

// Center a rect inside of the image
// by going half the difference to the right and down.
string.drawInRect(
CGRectMake(
(imageWidth - stringSize.width) / 2,
(imageHeight - stringSize.height) / 2,
stringSize.width,
stringSize.height
),
withAttributes: attributes
)

let newImage = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()

结果(不用管颜色):

String ABC centered in image

关于iOS 在形状中心绘制文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21260314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com