收集视图单元格的动态宽度 - Xamarin iOS

问题描述:

我想使单元格宽度相对于其内容是动态的。我试过计算标签宽度,然后将其分配给单元框架,但无法达到此目的,因为标签没有返回实际宽度。收集视图单元格的动态宽度 - 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

可以使用的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