2013-01-23 44 views
0

我想得到一個NSString的某個子字符串在UILabel(或者UITextView,如果更簡單)中被渲染的框,考慮到整個NSString被繪製的矩形,膿液換行模式,字體等。在OSX中,在增加中,有一種方法返回該矩形我怎樣才能得到一個子串將被繪製的綁定矩形?

- (NSRect)boundingRectWithSize:(NSSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes 

iOS有類似的東西嗎?我檢查了文件,但沒有找到任何東西。有沒有類似的東西?

回答

2

我想,這可能會幫助你

// Create some text view for example 
_tv = [[UITextView alloc] initWithFrame:CGRectMake(10.0, 10.0, 300.0f, 250.0f)]; 
_tv.text = @"dkjshfk shf kjhs fkj ewkjhf kwfwkj fhwk fwh fjkw hfjkhwe fkjwh"; 
_tv.font = [UIFont systemFontOfSize:24]; 
[self.view addSubview:_tv]; 

,這是你在尋找什麼

- (void)someAction:(id)sender 
{ 
    // Here is a frame of selected text in text view 
    CGRect frame = [_tv firstRectForRange:_tv.selectedTextRange]; 

    // Mark selected text with yellow 
    UIView *v = [[[UIView alloc] initWithFrame:frame] autorelease]; 
    v.backgroundColor = [UIColor yellowColor]; 
    v.alpha = .8f; 
    [_tv addSubview:v]; 
} 
+1

感謝您的答覆,但是這不是我要找的。我想要一個已經在UILabel(或UITextView)中呈現的字符串的子串的矩形。我將編輯這個問題來澄清。 – emenegro

+0

現在,我明白了。這是另一個建議 CGRect frame = [_tv firstRectForRange:_tv.selectedTextRange]; – caentist

+0

謝謝,它有效,除非有表情符號,在這種情況下,如果它在表情符後面,它不會返回給定範圍內的矩形。你有什麼線索問題是什麼?也許是編碼問題? – emenegro

相關問題