2014-05-20 41 views
0

我有一個UILabel,它只能顯示三行文字,它的高度和寬度都是(312,44)在UITableViewCell之內我想要做什麼,如果UILabel文字更多或變得越來越......(點,點)然後在用戶長按UITableView內的特定單元格時在警報視圖上顯示文本。如何獲得NSString的正確大小或檢查是否適合UILabel或不是?

enter image description here

但是,如果文本標籤內的寵愛,我面臨的問題,它計算比UILabel大小在下面的代碼少NSString大小。我很沮喪最近出了什麼問題。

這裏是UILabelUITableView

enter image description here

當我在代碼中我得到了大小以下字符串中設置「斷點」是(309.46,42.97)小於磅尺寸

@「標題描述:派克位於世界47個國家派克支持142個師311在全球47個國家的製造地點。我們無與倫比的工業分銷網絡遍佈全球約13,000個地點。通過這個龐大的本地獨立業務網絡,派克可以爲全球104個國家的客戶提供產品和服務。這包括繼續滲透派克商店的工業零售網絡,該網絡正在接近2,000個地點。 「

-(IBAction)longGuestureTriggered:(UILongPressGestureRecognizer*)longPressGesture 
{ 
    if (longPressGesture.state == UIGestureRecognizerStateEnded) 
    { 

     UILabel* lbl=(UILabel*)longPressGesture.view; 
     CGSize size = [lbl.text sizeWithFont:lbl.font constrainedToSize:lbl.bounds.size lineBreakMode:lbl.lineBreakMode]; 
     CGSize lblSize=lbl.bounds.size; 
     if (size.height> lblSize.height && size.width>lblSize.width) 
     { 
      UIAlertView* alertView=[[UIAlertView alloc]initWithTitle:@"Detail View" message:lbl.text delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:nil, nil]; 

      [alertView show]; 
     } 
    } 

} 
+0

那豈不是更一致的,如果你允許總是在alertview字符串的長度來顯示無論文本會躲閃這個特殊的子彈,以及... – trojanfoe

+0

@trojanfoe沒有實際?我只允許在警報視圖中顯示...點擊的文本,當用戶長按tabelview –

+0

行。如果您在發佈的代碼中將'&&'更改爲'||'會發生什麼? – trojanfoe

回答

2

的問題是,你所要求的大小適合當前的標籤。你應該問一個尺寸適合一個身材高大的標籤。所以不是

CGSize size = [lbl.text sizeWithFont:lbl.font constrainedToSize:lbl.bounds.size lineBreakMode:lbl.lineBreakMode]; 

你應該使用:

CGSize size = [lbl.text sizeWithFont:lbl.font constrainedToSize:CGSizeMake(lbl.bounds.size.width, 1000) lineBreakMode:lbl.lineBreakMode]; 
相關問題