MonoTouch всплеск фейдер - PullRequest
2 голосов
/ 20 марта 2012

Я пытаюсь создать заставку для MonoTouch, которая за короткий промежуток времени исчезает из Default.png в приложение.

Это то, что у меня есть в AppDelegate,

public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
    window = new UIWindow (UIScreen.MainScreen.Bounds);
    viewController = new App1ViewController ();
    navController = new UINavigationController(viewController);

    UIImageView splash = new UIImageView(window.Bounds);
    splash.Image = UIImage.FromFile("Default.png");
    splash.Alpha = 1.0f;

    window.AddSubview(splash);
    UIView.Animate(5,
    delegate
    {
        splash.Alpha = 0.0f;
    },
    delegate
    {
        Console.WriteLine("Removed.");
        splash.RemoveFromSuperview();
        window.RootViewController = navController;
    });
    window.MakeKeyAndVisible();

    return true;
}

Но пока это не работает / ничего не показывает. Кроме того, есть ли событие для завершения анимации, чтобы я мог удалить вид? Это правильный путь?

PS У меня уже есть файлы изображений в корневой папке приложения и помечены как содержимое. Они просто не работают достаточно долго при загрузке приложения.

Ответы [ 3 ]

2 голосов
/ 30 марта 2012

Изменено несколько имен переменных, но я надеюсь, что это поможет ...

public override bool FinishedLaunching (UIApplication app, NSDictionary options)
    {
        window = new UIWindow (UIScreen.MainScreen.Bounds);

        UIImageView splash = new UIImageView(window.Bounds);
        splash.Image = UIImage.FromFile("Default.png");

        var vc = new UIViewController ();
        var nav = new UINavigationController(vc);

        window.AddSubview(splash);
        window.AddSubview(nav.View);
        window.BringSubviewToFront(splash);
        window.MakeKeyAndVisible();

        UIView.Animate(5,
        delegate
        {
            splash.Alpha = 0f;
        },
        delegate
        {
            Console.WriteLine("Removed.");
        window.RootViewController = nav;
            splash.RemoveFromSuperview();

        });

        return true;
    }
0 голосов
/ 28 июня 2012

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

public void LaunchSpinner()
{
// launch  spinner for 2 secs
ActivityIndicator objLoadView = new ActivityIndicator ("Please Wait......");
NSTimer.CreateScheduledTimer (TimeSpan.FromSeconds (2), () => objLoadView.StopAnimatings ());
}

public class ActivityIndicator : UIActivityIndicatorView
{
UIAlertView _alert;
UIActivityIndicatorView _ai =new UIActivityIndicatorView(); 
public ActivityIndicator()
 {

 }
public ActivityIndicator (String title)
{
_alert = new UIAlertView (title, String.Empty, null, null, null);
_ai = new UIActivityIndicatorView ();
_ai.Frame = new System.Drawing.RectangleF (125, 50, 40, 40);
_ai.ActivityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge;
_alert.AddSubview (_ai);
_ai.StartAnimating ();
_alert.Show (); 
}

public void StopAnimatings ()
{           
_ai.StopAnimating ();
_alert.DismissWithClickedButtonIndex (0, true);
_alert.Hidden = true;
_ai.HidesWhenStopped = true;                    
}
#region IDisposable implementation
void IDisposable.Dispose ()
{
 _alert.DismissWithClickedButtonIndex(0, true);
}
#endregion
}
0 голосов
/ 21 марта 2012

Что такое App.AppFile()?

Вы должны просто иметь возможность использовать UIImage.FromFile("Default.png"), если он находится в корне вашего приложения.

iOS также будет обрабатывать @ 2x для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...