【问题标题】:What type of activity animation view is this?这是什么类型的活动动画视图?
【发布时间】:2012-01-28 05:15:51
【问题描述】:

在下图中,使用什么类型的视图来创建“开启提醒”活动指示器?它是带有标签和标准 UIActivityIndi​​cator 的自定义视图吗?一个内置的 UIKit 类?

【问题讨论】:

    标签: iphone objective-c ios uiview ios5


    【解决方案1】:

    正如其他人所说,这是一个自定义视图。幸运的是,一个善良的第三方已经创建了一个很好的开源实现:

    https://github.com/jdg/MBProgressHUD

    【讨论】:

      【解决方案2】:

      是的,它是带有标签和标准 UIActivityIndi​​cator 的视图。

      【讨论】:

        【解决方案3】:

        您不需要自定义视图。像这样完全未经测试的代码可以做到这一点:

        - (UIView *)busyOverlayViewWithText:(NSString *)text {
            UIView *view = [[UIView alloc] initWithFrame:CGRectMake(80, 120, 160, 160)];
            view.opaque = NO;
            view.clipsToBounds = YES;
            view.backgroundColor = [UIColor colorWithWhite:0 alpha:.2];
            view.layer.cornerRadius = 8;
        
            UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge];
            spinner.center = CGPointMake(80, 30);
            [spinner startAnimating];
            [view addSubview:spinner];
        
            UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 60, 160, 100)];
            label.text = text;
            label.textColor = UIColor.whiteColor;
            label.backgroundColor = UIColor.clearColor;
            label.textAlignment = UITextAlignmentCenter;
            label.numberOfLines = 0;
            label.lineBreakMode = UILineBreakModeWordWrap;
            [view addSubview:label];
        
            return view;
        }
        

        这是使用 ARC。如果您使用手动内存管理,请添加(自动)释放。

        【讨论】:

        • 您创建的只是一个自定义视图。所以“你不需要自定义视图”是错误的。我还怀疑您的代码中存在内存问题。
        • 对我来说,“自定义视图”是指UIView 的子类。
        • 另外,我的代码中没有内存问题。我没测试的时候用过ARC。
        • 自定义视图是指单个内置视图无法实现的功能。使用继承还是对象组合都没有关系。您应该提到 ARC(我必须同意我对此不太熟悉)。没有 ARC 肯定会有问题。无论如何,我并没有因为代码示例而对你投反对票(而且你已经承认代码没有经过测试)。
        • 所以“你不需要自定义视图”应该改为“你不需要使用 1200 行代码的第三方 UIView 子类。”。
        【解决方案4】:

        这不是一个单一的内置类。相反,它是由以下组成的:

        • 自定义透明视图,可能是图像。
        • 标准活动指示器。
        • 标准标签。

        如果您想创建类似的东西,那么您可以轻松地将它们全部放在一个类中。

        【讨论】:

        • 谢谢!我只是想在继续尝试重新发明轮子之前检查一下......
        猜你喜欢
        • 2017-12-26
        • 2018-05-26
        • 1970-01-01
        • 1970-01-01
        • 2012-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多