【问题标题】:How do I make a UIBarButtonItem 'glow'?如何使 UIBarButtonItem '发光'?
【发布时间】:2010-04-18 20:03:50
【问题描述】:

在地图应用程序中,当您按下左下角的跟踪按钮时,它会发光,表明它已被按下。这使它表现得像一个单选按钮,一旦你移动地图,它就会不发光。有没有一种简单的方法可以让按钮进入按下状态?

【问题讨论】:

    标签: iphone uikit uibarbuttonitem uibarbuttonitemstyle


    【解决方案1】:

    我相信您正在寻找 UIButton 类的 showsTouchWhenHighlighted 属性。试试这个。

    myButton.showsTouchWhenHighlighted = YES;
    

    【讨论】:

    • 问题是关于 UIBarButtonItem 而不是 UIButton,所以这无关紧要。
    • 从问题细节中不清楚情况是否如此。无论如何,您可以使用 UIButton 创建一个 UIBarButtonItem,所以我相信我的回答是相关的。 UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithCustomView:myButton];
    • 我正在寻找UIButton的效果,谢谢您的回复!
    【解决方案2】:

    将其样式设置为 UIBarButtonItemStyleDone。

    【讨论】:

    • UIBarButtonItemStyleDone 是一个“蓝色”按钮。我不认为这是发光,对吧?
    • 好吧,从技术上讲,它不是发光,但它是地图应用程序所做的(如问题中所述)。
    • 这实现了蓝色,但不是发光。
    【解决方案3】:

    您可以将其自定义视图设置为自定义按钮,如下所示:

    `

    UIImage *image = [UIImage imageNamed:@"someimage"];
    UIImage *imageHL = [UIImage imageNamed:@"someimage_selected"];
    button = [UIButton buttonWithType:UIButtonTypeCustom];
    
    [button setImage:image forState:UIControlStateNormal];
    [button setImage:imageHL forState:UIControlStateHighlighted];
    [button addTarget:self action:@selector(doStuff:) forControlEvents:UIControlEventTouchUpInside];    
    myBarButtonItem.customView = button;
    

    `

    【讨论】:

      【解决方案4】:

      使用UIBarButtonItemStylePlain

      UIBarButtonItemStylePlain
      点击时会发光。

      【讨论】:

        【解决方案5】:

        如果您的 UIBarButtonItem 带有 image/textUIBarButtonSystemItem,则使用 UIBarButtonItemStylePlain

        barButton.style = UIBarButtonItemStylePlain;
        

        如果你有一个带有自定义视图的 UIBarButtonItem,那么,对于每个 UIButton 应该添加以下代码:

        uiButton.showsTouchWhenHighlighted = YES;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多