2013-12-12 57 views
0

我知道這已被問及很多次。但我怎麼把一個UITextViewUITableViewCell其中,我需要satify如下:包含UITextView的UITableViewCell

  1. UITextView不可編輯。
  2. UITableView應該滾動當我觸及UITextView滾動。
  3. UITextView應該是可交互的,從某種意義上說,如果我有一個鏈接,我應該可以在Safari中打開它。
  4. 在談到UITextView也應該調用didSelectRowAtIndexPath

1,2和4是可能的,如果我這樣做[cell.textView setUserInteraction:NO]

但在這種情況下,3不起作用。我如何獲得所有這些條件以滿足?

謝謝。

+0

這個問題是非常有用的。不知道爲什麼反對票 – khunshan

回答

1

我已經使用在過去TTTAttributedLabel和它的工作真的很好!這是一個UILabel,它將文本檢測和委託方法歸因於處理與此文本的交互。既然它像UILabel一樣,它最終也會滿足你的要求。

  1. 它是不可編輯的。
  2. 它不可滾動。
  3. 您可以與它進行交互(和自定義當選擇一個屬性的文本會發生什麼)
  4. 倒是應該被轉發到電池本身,引發didSelectCellAtIndexPath:
0

在-儘管使用該代碼: -

//[cell.textView setUserInteraction:NO] 

使用此: -

[cell.textView setEditable:NO]; 
+0

+1你打我45秒,:D! –

+0

我已經完成了。如果我將userInteraction設置爲NO,那不會有幫助 – Anil

+0

,我將無法點擊鏈接。如果我將它設置爲YES,如果觸摸textView的頂部,我將無法滾動tableView。 textView已被設置爲不可編輯 – Anil

0

在這種情況下更好地去UIScrollview並在其上添加的UILabel。

並使用

互動富文本的UILabel

圍棋雖然這link
和花式UILabel

0

一種方式要禁用的互動和你試圖讓其他方式它可觸摸...請清楚您的要求..意思,而你可以嘗試UILable或UIButton ..這.. https://github.com/facebook/three20

0

分配相等的細胞數(或別的東西,是獨一無二的,可以幫助你映射的TextView到小區)

禁用TextView的編輯和滾動標籤值。這將解決1 & 2.啓用文本視圖的用戶交互,3解決。爲文本視圖添加一個手勢識別器,並在該視圖中檢查文本視圖標記並呼叫didSelectRowAtIndexPath,並從該函數返回YES以允許textview接收該觸摸並執行所需的操作(打開鏈接等)。

0

試試看看這個代碼。它工作正常。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"]; 


    UITextView *desclbl = [[UITextView alloc] initWithFrame:CGRectMake(3, 15, 100, 50)]; 

    desclbl.backgroundColor = [UIColor clearColor]; 

    desclbl.userInteractionEnabled = NO; 

    desclbl.editable = NO; 

    desclbl.font = [UIFont systemFontOfSize:13]; 

    desclbl.dataDetectorTypes = UIDataDetectorTypeAll; 

    desclbl.textColor = [UIColor blackColor]; 

    [cell.contentView addSubview:desclbl]; 

    desclbl.tag = 25; 

    cell.selectionStyle = UITableViewCellSelectionStyleNone; 

} 

UITextView *lblDesc = (UITextView*) [cell.contentView viewWithTag:25]; 

lblDesc.text = [NSString stringWithFormat:@"http://www.google.com"]; 

return cell; 

}

相關問題