开发者

How can I animate a View to fly in from the bottom of the screen?

开发者 https://www.devze.com 2022-12-17 08:59 出处:网络
I\'开发者_运维百科m trying to figure out how to have a view. Let\'s call it ThirdView. It should slide up from the bottom of the screen when a user clicks a particular button on SecondView.You\'ll wan

I'开发者_运维百科m trying to figure out how to have a view. Let's call it ThirdView. It should slide up from the bottom of the screen when a user clicks a particular button on SecondView.


You'll want to create the ThirdView in your SecondView and present it as a modal view, passing in the secondView in the constructor. This will be the easiest way of animating it in the way you would like.

var thirdView = new ThirdView(secondView);
this.PresentModalViewController(thirdView, true);

In your third view, you'll want to call the passed-in SecondView and call:

secondView.DismissModalViewControllerAnimated(true);


Here is a complete working example. It is a tad simpler than in chrisntr's answer...though the above example is what I used to figure everything out.

The coolest thing about this method is that for an artistic custom UI (like the one I am building for a game), there is no off-the-shelf UI elements like the TabBar, Navigation bars, etc. The most creative applications don't use standard UI stuff.

In your main.cs file, in your finishedlaunching block:

ViewController myUIV = new ViewController();
window.AddSubview(myUIV.View);
window.MakeKeyAndVisble();

And then in a new code file add this code:

using System;
using System.Drawing;
using MonoTouch.UIKit;

namespace AnimationTest
{

    public class ViewController : UIViewController
    {
        UIButton uib = new UIButton(new RectangleF(100, 100, 40, 40));
        public override void ViewDidLoad()
        {
            Console.WriteLine("UI1");
            this.View.BackgroundColor = UIColor.Blue;
            uib.BackgroundColor = UIColor.White;
            uib.TouchUpInside += delegate {
                Console.WriteLine("Hey!");
                var vc2 = new SecondController();
                PresentModalViewController(vc2, true);
            };
            this.View.AddSubview(uib);
            base.ViewDidLoad();
        }
    }

    public class SecondController : UIViewController
    {
        UIButton uib = new UIButton(new RectangleF(100, 100, 40, 40));
        public override void ViewDidLoad()
        {
            this.View.BackgroundColor = UIColor.White;
            uib.BackgroundColor = UIColor.Red;
            uib.TouchUpInside += delegate {
                this.DismissModalViewControllerAnimated(true);
            };

            this.View.AddSubview(uib);
            base.ViewDidLoad();
        }
    }
0

精彩评论

暂无评论...
验证码 换一张
取 消