0

iPhone アプリの View に UIScrollView と UIPageControl があります。この Scrollview に 10 個のボタンのリストを設定します。ボタンはすべて正しく配置され、完全にスクロールできます。私の質問は、これらのボタンのそれぞれにクリック イベントを接続するにはどうすればよいですか? 各ボタンは基本的に同じタスク (サウンドの再生) を実行しますが、サウンドはこれらのボタンごとに異なります。ボタンは、次の方法でプログラムによって作成されます。

    private void CreatePanels()
    {
        scrollView.Scrolled += ScrollViewScrolled;

        int count = 10;
        RectangleF scrollFrame = scrollView.Frame;
        scrollFrame.Width = scrollFrame.Width * count;
        scrollView.ContentSize = scrollFrame.Size;

        for (int i=0; i<count; i++)
        {
            
            float h = 150.0f;
            //float w = 50.0f;
            float padding = 10.0f;
            int n = 25;
            
            var button = UIButton.FromType (UIButtonType.RoundedRect);
            button.SetTitle (i.ToString (), UIControlState.Normal);
            UIImage img = new UIImage("Images/btntest.png");
            button.SetImage(img, UIControlState.Normal);
            button.Frame = new RectangleF (
                        (padding + 40) * (i + 1) + (i * (View.Frame.Width - 100))   , 
                        padding,                        
                        View.Frame.Width - 100,         
                        h);

            RectangleF frame = scrollView.Frame;
            PointF location = new PointF();
            location.X = frame.Width * i;

            frame.Location = location;
            button.Frame = frame;

            scrollView.AddSubview(button);
        }

        pageControl.Pages = count;
    }
    
    private void ScrollViewScrolled (object sender, EventArgs e)
    {
        double page = Math.Floor(((scrollView.ContentOffset.X - scrollView.Frame.Width) / 2) / scrollView.Frame.Width) + 1;

        pageControl.CurrentPage = (int)page;
    }

CreatePanels() メソッドは、UIScrollView を設定する ViewDidLoad() メソッド内で呼び出されます。

これらの各ボタンにクリック イベントをリンクするにはどうすればよいですか? 私はインターネットをたくさん検索しましたが、役に立ちませんでした。

4

1 に答える 1

2

for ループ内の各クリック イベントに匿名メソッドを接続するのはどうでしょうか。

button.TouchUpInside += (s, e) => { //play i.mp3
};

サウンド ファイルを実際に再生する方法はわかりませんが、ボタンの名前が i.* であるため、サウンド ファイルに i.* という名前を付けることができます。

于 2012-05-07T14:52:57.620 に答える