如何在Xamarin iOS

时间:2015-12-15 09:14:36

标签: c# ios xamarin xamarin.ios

我是ios开发的新手。我正在尝试在Xamarin iOS应用程序中创建一个垂直ScrollView。

下面是我的水平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.
    }


}
}

我想创建一个垂直滚动视图并添加一些可滚动的文本视图。关于如何做到这一点的任何想法?

如果您能详细说明如何在我的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

以及更多......

2 个答案:

答案 0 :(得分:3)

您需要设置ScrollView Content Size Height,大于它的帧高。因此它会向上/向下滚动。滚动视图的宽度应与其内容宽度相同,因此不会向右/向左滚动。

答案 1 :(得分:0)

我在寻找这个。无论有无代码,我都使用了很多教程。滚动的最佳方法如下:

  • 添加滚动视图(左,右,上,下约束)

  • 添加您想要的任何内容

  • 棘手的部分是设置2个约束:

    1)容器的水平空间,其中容器是滚动视图(用更宽的元素做这个)

    2)容器的垂直空间,其中容器是滚动视图(使用最后一个元素执行此操作)

当您的屏幕变得更高时,垂直约束将增加您的滚动视图。不需要代码,只需要适当的约束。

在您的示例中,您必须:

  • 为您的第一个标签

  • 设置左右约束
  • 在所有标签中添加垂直约束

  • 在最终文本视图和滚动视图之间添加最终垂直约束(textview可能需要高度约束)

如果您的元素不适合Xcode中的屏幕,请使用自由形式大小使您的控制器更大(这仅适用于xcode,而不适用于您的实际程序)