【问题标题】:How to create a class to display a UIWindow?如何创建一个类来显示 UIWindow?
【发布时间】:2013-10-27 11:59:58
【问题描述】:

我创建了一个很酷的通知视图,我喜欢创建一个类,所以我只需要在任何 ViewController.m 文件中调用[SBNotification showNotificationViewWithText:@"Test" andTextColor:[UIColor whiteColor] andNotificationBackGroundColor:[UIColor blueColor] andDelay:5 directionUp:NO]; 问题是我不知道如何创建这样一个类。这是我的第一次:)

请帮帮我,这样我就可以开源这个项目了!

【问题讨论】:

    标签: ios class uiwindow


    【解决方案1】:

    这样就可以得到应用程序窗口

    UIWindow *applicationWindow = [[UIApplication sharedApplication] keyWindow];
    

    之后,您可以将所需的任何视图添加到窗口中,并将显示在应用程序内容的顶部

    编辑:

    - (void)show {
    
        UIWindow *applicationWindow = [[UIApplication sharedApplication] keyWindow];
    
        [applicationWindow addSubView:self];
    }
    
    - (void)dismiss {
    
        [self removeFromSuperview];
    }
    

    当然,如果你想拥有更酷的东西,你可以在“显示”和“关闭”方法中实现动画以淡化你喜欢做的任何事情

    【讨论】:

    • 我想你误解了我的问题,我喜欢创建一个名为 SBNotification 的 UIWindow 类的 .h 和 .m 文件,我喜欢放入显示 UIWindow 所需的所有相关代码。所以基本上就像一个 UIAlertView 类。
    • 子类不需要是 UIWindows 的子类,可以像 UIAlertView 一样是 UIView 的通用子类,并实现一个方法 'show' 将视图(self)添加到主窗口和'dismis'从superView中删除视图(self)
    • 我知道,我无法正确解释,但我不知道该怎么做。我喜欢创建这样的东西:github.com/scottjacksonx/SJNotificationViewController
    • 查看我的编辑...您的子类应该在 UIView 而不是 UIWindow 上。我看到那个项目,如果它是类似的,分叉它并在你需要的部分进行自定义。
    • 我需要一个 UIWindow,我不能使用 UIView。
    【解决方案2】:

    您可以在您的应用程序中创建另一个 UIWindow,但通常应用程序由一个窗口和多个视图 (UIView) 组成。所以你可能想要的是继承一个 UIView。

    看这里:

    Subclassing UIWindow

    Subclassing UIView

    【讨论】:

      猜你喜欢
      • 2016-05-18
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 2017-11-10
      相关资源
      最近更新 更多