2015-10-16 77 views
1

我有一個自定義TableViewCell就象這樣:如何在一行中正確添加兩個按鈕和一個標籤?

enter image description here

nameevent兩個按鈕。按鈕名稱將在代碼中動態分配,如下所示:

[cell.newsEventName setTitle:event[@"name"] forState:UIControlStateNormal]; 
[cell.newsEventName setTitleColor:[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0] forState:UIControlStateNormal]; 

有時這些名稱太長,有時很短。我怎樣才能動態地把它們放在一個行來避免這個:

enter image description here

如果我畫按鈕過大,以避免點再短的名字我還有這麼多的空的空間。我怎樣才能很好地把它們放在這些條件下?

+0

單元格的寬度是固定的,我的建議是消除黑色標籤,因爲它在UI是一種多餘的大小調整的名字有所有你通過刪除黑色標籤保存的空間。 –

+0

「加入您的活動」可以替換爲出現在左側圖片上的小圖片 –

回答

1

您是否使用約束?對於增長/縮小的標籤,您可以將內容擁抱優先級設置得更高,並且它會一直增長。

如果你不使用的限制,你可以把它的大小要適宜,或者只是在小區做它的佈局

1

您可以使用UIStackView動態重新做大小。這將允許您動態調整按鈕的大小。但是,如果你這樣做,你只能與iOS 9兼容。您可以像添加界面構建器中的其他元素一樣添加堆棧視圖。

0

允許它分解爲3個步驟

  • 甲:查找所需要的尺寸來進行名稱

    CGSize sizeMax = CGSizeMake(cell.frame.size.width, FLT_MAX); 
    CGSize sizeExpected = [stringName sizeWithFont:buttonName.titleLabel.font 
              constrainedToSize:maximumLabelSize 
               lineBreakMode:NSLineBreakByWordWrapping]; 
    float buttonWidth = sizeExpected.width; 
    
  • B:設定按鈕的寬度(用名)

    CGRect r1 = cell.newsEventName.frame; 
    cell.newsEventName setFrame:CGRectMake(r1.origin.x, r1.origin.y, buttonWidth, r1.size.height); 
    
  • C:設置標籤的寬度

    CGRect r2 = cell.newsEventLabel.frame; 
    cell.newsEventLabel setFrame:CGRectMake(r1.origin.x+buttonWidth, r2.origin.y, r2.size.width, r2.size.height); 
    
相關問題