我们正在使用xamarin.ios中的聊天应用程序,因此在这里我们想在添加新行(例如sms或Skype应用程序)时实现自动增长的textview。如何在xamarin.ios中实现此功能。我已经完成了很多研发工作,并且在互联网上进行了很多搜索,但是还没有找到合适的解决方案。
请指导我解决这个问题。
答案 0 :(得分:1)
请参考以下代码:
CGSize oldSize;
public ViewController (IntPtr handle) : base (handle)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
UITextView textView = new UITextView(new CGRect(20,20,100,30));
oldSize = textView.Frame.Size;
textView.Font = UIFont.SystemFontOfSize(16);
textView.TextColor = UIColor.Black;
textView.Changed += (sender, e) => {
if(textView.Text.Length!=0&&textView.Text!="")
{
CGRect frame = textView.Frame;
double newHeight = Math.Ceiling(textView.SizeThatFits(new CGSize(oldSize.Width,9999999999)).Height);
// update the height if the newHeight larger than the old
if(newHeight >= oldSize.Height)
{
textView.Frame = new CGRect(frame.X, frame.Y, frame.Size.Width, newHeight);
}
}
};
View.AddSubview(textView);
}
答案 1 :(得分:0)
嗨,我们也为此提供了另一个简单的解决方案。
textview.Changed += (object sender, EventArgs e) =>
{
//Action
var NewHeight = txtMsgToSend.ContentSize.Height;
textview.Frame = new CGRect(x:textview.Frame.X, y: textview.Frame.Y, width:
textview.Frame.Width, height: NewHeight);
}
};