我的目标很简单:从UILabel获取标签文本中子串的矩形。从广泛的搜索,似乎没有任何内容来处理这个问题。其他人也问过类似的问题,但没有人在Stackoverflow上完全回答过。UILabel获取文本子串的CGRect
// Something like this perhaps (added as a category)
CGRect rect = [myLabel rectForRange:NSMakeRange(3, 5)];
了它可以被用于一个例子(只是为了澄清我搜索):
我的目标很简单:从UILabel获取标签文本中子串的矩形。从广泛的搜索,似乎没有任何内容来处理这个问题。其他人也问过类似的问题,但没有人在Stackoverflow上完全回答过。UILabel获取文本子串的CGRect
// Something like this perhaps (added as a category)
CGRect rect = [myLabel rectForRange:NSMakeRange(3, 5)];
了它可以被用于一个例子(只是为了澄清我搜索):
这是主要需要一个字符rects,所以我疯了,写了一些代码,可以准确地计算最基本的UILabel矩形。标准UILineBreakMode和文本对齐。
我一直希望,如果我将它发布给公众,人们对它的贡献和改进,尤其是因为我对文本渲染知之甚少!
代码:
你是对的:这不是一个内置部分UILabel
。
如果你真的需要这个,子类UILabel
,请使用CoreText
来实现-drawRect:
,你就可以compute the rect for a range via CTLineGetOffsetForStringIndex()
, CTFrameGetLineOrigins()
, and CTLineGetTypographicBounds()
。如果范围内的文本被布置为越过换行符,则这会变得复杂;你可能会想要多个rects。
喜埃里克。这将是非常好的,如果你能帮助我[这里](http://stackoverflow.com/questions/8860520/find-coordinates-of-a-substring-in-uilabel)。 – Nitish