【问题标题】:UINavigationItem with prompt and activity indicator带有提示和活动指示器的 UINavigationItem
【发布时间】:2010-02-15 00:36:00
【问题描述】:

我想知道 Apple 是如何在标题上方实现包含活动指示器(见下图)的 UINavigationItem。这是允许这样做的Apple私有API吗?如果没有,如何在应用程序中重现。

UINavigationItem with prompt and activity indicator http://img218.imageshack.us/img218/8819/img0133g.png

谢谢!

【问题讨论】:

    标签: iphone cocoa-touch navigation


    【解决方案1】:

    我用这段代码得到了与你的截图完全相同的渲染:

     UIView                      *viewContainingSpinner;
        UIActivityIndicatorView     *activityIndicatorView;
        UIBarButtonItem             *activityButtonItem;
        UIBarButtonItem             *rightBarButtonItem;
    
    
        // Configuring the title and the prompt title of the navigation bar
        [self.navigationItem setTitle:@"MobileMe"];
        [self.navigationItem setPrompt:@"Vérification du compte MobileMe"];
    
        // We will create a UIBarButtonItem that has a custom view (viewContainingSpinner).
        // A subview of viewContainingSpinner will be a UIActivityIndicatorView (activityIndicatorView)
        // We need to have this "intermediate" view to position the spinner at the right position (the UIBarButtonItem ignores the origin and height of its custom view)
        viewContainingSpinner = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 60, 85)];
        activityIndicatorView = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(20, 0, 20, 20)];
        [viewContainingSpinner addSubview:activityIndicatorView];
        [activityIndicatorView startAnimating];
        [activityIndicatorView release];
    
        activityButtonItem = [[UIBarButtonItem alloc] initWithCustomView:viewContainingSpinner];
        self.navigationItem.leftBarButtonItem = activityButtonItem;
        [viewContainingSpinner release];
        [activityButtonItem release];
    
        // Finally, configuring the right button
        rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Enregistrer" style:UIBarButtonItemStylePlain target:nil action:nil];
        [rightBarButtonItem setEnabled:NO];
        self.navigationItem.rightBarButtonItem = rightBarButtonItem;
        [rightBarButtonItem release];
    



    PS:在实际应用程序中,我建议不要在代码中使用本地化字符串。 “验证”一词的 é 可能会给您带来麻烦。 看看方法NSLocalizedString

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      相关资源
      最近更新 更多