Instagram般的刷新按钮

时间:2013-04-08 14:13:00

标签: iphone ios objective-c xcode navigation

我真的试图像Instagram的按钮那样做一个按钮(rightBarButtonItem),我认为不可能设置背景图像&同时将图像转换为按钮。

**

AppDelegate.m

**

NSDictionary *faTextAttributes = @{ UITextAttributeFont : [UIFont fontWithName:@"Arial" size: 12],
                                        UITextAttributeTextColor : [UIColor whiteColor],
                                        UITextAttributeTextShadowColor: [UIColor blackColor],
                                        UITextAttributeTextShadowOffset: [NSValue valueWithCGSize: CGSizeMake(0,0)] };


    [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]
     setTitleTextAttributes:faTextAttributes forState:UIControlStateNormal];
    [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]
     setTitleTextAttributes:faTextAttributes forState:UIControlStateHighlighted];


    [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]
     setBackgroundImage:[UIImage imageNamed:@"bar"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]
     setBackgroundImage:[UIImage imageNamed:@"bar"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];

FirstViewController.m

UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleDone target:nil action:nil];

self.navigationItem.rightBarButtonItem = rightButton;

这里是图片:

背景图片(2x)http://d.pr/i/BYS9

刷新图片(2x)http://d.pr/i/Hg5u


我正在寻找与Instagram应用程序相同的按钮,在背景图像中设置刷新图像。

希望你帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

不幸的是,UIBarButtonItem不是UIButton的子类,因此没有UIButton所具有的复杂属性和可定制性。 Instagram实现此按钮的方式是只有一个图像是覆盖在背景图像上的刷新图像。按下按钮时,它们会隐藏项目并用风车将其替换。

或者您可以创建自定义按钮,将所需属性添加到该按钮,然后使用该按钮创建条形项:

UIBarButton* button initWithCustomView:customButton;