2015-12-15 5 views
4

Я новичок в разработке ios. Я пытаюсь создать вертикальный ScrollView в приложении Xamarin iOS.Как создать вертикальный вид прокрутки в Xamarin iOS

Ниже мой код для горизонтального ScrollView

using System; 

using UIKit; 
using Foundation; 
using CoreGraphics; 
using System.Collections.Generic; 

namespace TestApp 
{ 
    public partial class ViewController : UIViewController 
    { 

    public ViewController (IntPtr handle) : base (handle) 
    { 
     ScrollingButtonsController(); 
    } 

    UIScrollView scrollView; 
    List<UIButton> buttons; 

    public override void ViewDidLoad() 
    { 
     base.ViewDidLoad(); 
     // Perform any additional setup after loading the view, typically from a nib. 
     //MyScrollView.scrollEnabled=YES; 
     //MyScrollView.contentSize= CGSizeMake(CGFloat.width, CGFloat.height);   

     //end 
     nfloat h = 50.0f; 
     nfloat w = 50.0f; 
     nfloat padding = 10.0f; 
     nint n = 100; 

     scrollView = new UIScrollView { 
      Frame = new CGRect (0, 100, View.Frame.Height, h + 2 * padding), 
      ContentSize = new CGSize ((w + padding) * n, h), 
      BackgroundColor = UIColor.Red, 
      AutoresizingMask = UIViewAutoresizing.FlexibleWidth 
     }; 

     for (int i=0; i<n; i++) { 
      var button = UIButton.FromType (UIButtonType.RoundedRect); 
      button.SetTitle (i.ToString(), UIControlState.Normal); 
      button.Frame = new CGRect (padding * (i + 1) + (i * w), padding, w, h); 
      scrollView.AddSubview (button); 
      buttons.Add (button); 
     } 

     View.AddSubview (scrollView); 

     //UIScrollView scrollView; 
    //scrollView = new UIScrollView (
    //  new CGRect (0, 0, View.Frame.Width, View.Frame.Height)); 
    // View.AddSubview (scrollView); 



    } 
    public void ScrollingButtonsController() 
    { 
     buttons = new List<UIButton>(); 

    } 

    public override void DidReceiveMemoryWarning() 
    { 
     base.DidReceiveMemoryWarning(); 
     // Release any cached data, images, etc that aren't in use. 
    } 


} 
} 

Я хочу, чтобы создать вертикальную Scrollview и добавить прокрутку текста просмотров. Любая идея о том, как это сделать?

Я был бы признателен, если вы можете указать в деталях, как я могу получить элементы в моем файле Main.storyboard со схемой структуры согласно ниже прокручивать:

-Scroll View 
--label 
---Image View 
---Text View 
--label 
---Image View 
---Text View 
--label 
---Image View 
---Text View 
--label 
---Image View 
---Text View 
--label 
---Image View 
---Text View 

и многое другое ...

ответ

3

Вам нужно установить высоту содержимого содержимого ScrollView, большую, чем высота кадра. Таким образом, она будет прокручиваться вверх/вниз. Ширина прокрутки должна быть такой же, как и ее ширина содержимого, поэтому она не будет прокручиваться вправо/влево.

+0

отредактировал мой вопрос –

0

Я искал это. Я использовал множество руководств как с кодом, так и без него. Лучший способ сделать скроллинг является следующее:

  • Добавьте Scrollview (влево, вправо, вверх, вниз ограничений)

  • Добавить все, что вы хотите

  • Хитрость заключается в набор 2 ограничения:

    1) горизонтального пространства для контейнера, в котором контейнер представляет собой вид прокрутки (сделать это с вами более широким элементом)

    2) вертикальное пространство в контейнер, где контейнер является вид прокрутки (сделать это с вашим последним элементом)

В то время как экран становится выше, вертикальное ограничение будет увеличить вид прокрутки. Никакой код не нужен, просто соответствующие ограничения.

В вашем примере вы должны:

  • установить вверх, влево и вправо ограничения на вашу первую наклейку

  • добавить вертикальные ограничения среди всех этикеток

  • добавить окончательную вертикальные сдерживать между вашим окончательным текстовым просмотром и прокруткой (возможно текстовое поле требуется ограничение по высоте)

Если элементы не помещаются на экране в Xcode, используйте размер свободной формы, чтобы сделать ваш контроллер больше (это относится только к Xcode, а не от фактической программы)

+1

Пожалуйста, обратите внимание на форматирование и читаемость вашего текста. – pirho

+0

Спасибо! Я буду иметь это в виду в следующий раз. – JKapsi

Смежные вопросы