我的目標很簡單:從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