Установка границ для UIViewElement — Monotouch.Dialog

Я пытаюсь отобразить UITextView в UIViewElement. Я хотел бы, чтобы элемент соответствовал размеру текста.

Я ожидаю, что смогу сделать что-то подобное...

 UITextView textView = new UITextView();



    textView.Font = UIFont.SystemFontOfSize(15);
       var stringSize = textView.StringSize(someArbitraryText, 
                                            textView.Font, 
                                            new SizeF(320, 2000), 
                                            UILineBreakMode.WordWrap);

       textView.Bounds = new RectangleF(0,0,stringSize.Width, stringSize.Height);          
       textView.Center = new PointF(stringSize.Width/2, stringSize.Height/2);
       textView.Editable = false;
       textView.DataDetectorTypes = UIDataDetectorType.All;
       textView.Text = someArbitraryText;
       textView.ScrollEnabled = false;       





   root.Add(
      new Section("My Section:")
      {

         new UIViewElement("My Caption:", textView, false),

      });

Это приближает меня, но оставляет части моего UITextView за границей элемента. Я хотел бы, чтобы размер UIViewElement был достаточно большим, чтобы соответствовать моему пользовательскому представлению. Есть ли способ сделать это, не заходя и не изменяя источник UIViewElement?


person HatAndBeard    schedule 31.03.2011    source источник


Ответы (1)


В вашем элементе добавьте реализацию для IElementSizing, я считаю, что метод:

float GetHeight (UITableView tableView, NSIndexPath indexPath);

В этом методе возвращается высота элемента. т.е. TextView.Bounds.Height + 10. Я добавил + 10 для границы сверху и снизу.

person Robert Kozak    schedule 31.03.2011
comment
Я надеялся сделать это без подкласса UIViewElement, но заметил, что ActivityElement (из MonotoTouch.Dialog) делает то же самое. Кажется, что UIViewElement сам по себе непригоден для использования. - person HatAndBeard; 01.04.2011