我正在使用 MonoTouch.Dialog 并编写了一些代码来显示一些推文。问题在于,当我异步加载 StyledMultilineElement
时,表格单元格太小,并且单元格都聚集在一起。当我同步加载它们时(即没有 QueueUserWorkItem
/InvokeOnMainThread
部分),它们看起来绝对完美
有没有办法让表格单元格重新计算它们的高度?
// This method is invoked when the application has loaded its UI and its ready to run
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
window.AddSubview(navigation.View);
var tweetsSection = new Section("MonoTouch Tweets"){
new StringElement("Loading...") //placeholder
};
var menu = new RootElement("Demos"){
tweetsSection,
};
var dv = new DialogViewController(menu) { Autorotate = true };
navigation.PushViewController(dv, true);
window.MakeKeyAndVisible();
// Load tweets async
UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true;
ThreadPool.QueueUserWorkItem(delegate {
var doc = XDocument.Load("http://search.twitter.com/search.atom?q=%23MonoTouch");
var atom = (XNamespace)"http://www.w3.org/2005/Atom";
var tweets =
from node in doc.Root.Descendants(atom + "entry")
select new {
Author = node.Element(atom + "author").Element(atom + "name").Value,
Text = node.Element(atom + "title").Value
};
var newElements =
from tweet in tweets
select new StyledMultilineElement(
tweet.Author,
tweet.Text);
InvokeOnMainThread(delegate {
UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false;
tweetsSection.Remove(0);
tweetsSection.Add(newElements.Cast<Element>().ToList());
});
});
return true;
}
最佳答案
尝试在对话框 View Controller 的顶级 Root
元素(本例中为“menu”)上设置 UnevenRows
属性:
menu.UnevenRows = true
关于xamarin.ios - 异步调用后调整 MonoTouch.Dialog StyledMultilineElement 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7436870/