正如我在其他问题中所说的那样,我在.Net
技术方面是新手。现在,我开始使用Xamarin Crossplatform(目前为Xamarin.IOS)进行练习。但是我对此代码有疑问,它可以正常工作,但是如果表中有6个以上的元素,方法ForceUpdateSize()
会使应用程序崩溃?当我删除该方法时,该应用程序可以正常运行,但是文本重叠了。
这是填表的方法:
public sealed class AutoViewCellRenderer : ViewCellRenderer
{
public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
ViewCell vc = item as ViewCell;
if (vc != null)
{
var sr = vc.View.Measure(tv.Frame.Width, double.PositiveInfinity, MeasureFlags.IncludeMargins);
if (vc.Height != sr.Request.Height)
{
sr = vc.View.Measure(tv.Frame.Width, double.PositiveInfinity, MeasureFlags.IncludeMargins);
vc.Height = sr.Request.Height;
//vc.ForceUpdateSize(); --> Text ovelpping effect if I remove this method, but the app doesn't crash
}
}
return GetCell(item, reusableCell, tv);
}
}
有人可以帮助我了解我在做什么错吗?
在此先感谢大家!
答案 0 :(得分:0)
尝试一下:
//vc.ForceUpdateSize(); --> Text ovelpping effect if I remove this method, but the app doesn't crash
tv.BeginUpdates();
tv.EndUpdates();
我在较旧的帖子中找到了此内容,但遗憾的是我找不到了。 还请看一下:https://github.com/xamarin/Xamarin.Forms/issues/4012 我认为Xamarin社区对此非常了解,并且正在本主题中进行解决。