2017-09-25 82 views
1

我想使單元格寬度相對於其內容是動態的。我試過計算標籤寬度,然後將其分配給單元框架,但無法達到此目的,因爲標籤沒有返回實際寬度。收集視圖單元格的動態寬度 - Xamarin iOS

public void UpdateCell(string text) 
{ 
    label.Text = text; 
    this.ContentView.Frame = new CoreGraphics.CGRect(0, 0, label.Frame.Width, this.ContentView.Frame.Height); 
} 
+0

我想你應該調整內容查看在正確的位置,參考這裏:https://forums.xamarin.com/discussion/72296/collectionview-cell-width-is-not-changing-on-different-screen-sizes –

+0

我已經檢查過,但我的情況是不同的,我知道如果我將代碼放在委託類的GetSize方法中,單元大小反映了一個變化,但我只會給出靜態值t o這種方法,因爲我不能從這裏訪問我的意見 – Hasan

回答

0

可以使用的NSString的GetSizeUsingAttributes計算字符串CGRect,那麼你可以使用CGRect檢索寬度:

using (var labelString = new NSString(label.Text)) 
{ 
    var size = labelString.GetSizeUsingAttributes(new UIStringAttributes() { Font = label.Font }); 
    ContentView.Frame = new CGRect(0, 0, size.Width, ContentView.Frame.Height); 
} 
+0

我已經更新了代碼,我也檢查過這個函數返回的是其內容的不同值,但是我的單元格仍然沒有反映出不同的寬度 – Hasan

相關問題