自定义UIBarButton使它太大了

时间:2013-05-25 23:48:31

标签: ios ipad button customization

因此,当我尝试将自定义颜色设置为UIBarButton时,会导致显示的按钮太大,并向下延伸到NavigationBar并进入应用程序的主视图。有没有一种简单的方法来解决这个问题?这是我的代码:

UIImage *buttonColor = [[UIImage imageNamed:@"blue-background.jpg"]
                     resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];

[[UIBarButtonItem appearance] setBackgroundImage:buttonColor forState:UIControlStateNormal
                                      barMetrics:UIBarMetricsDefault];

2 个答案:

答案 0 :(得分:0)

尝试使用UIEdgeInsetsMake函数的值。 在我的一个应用程序中,它看起来像这样;

UIImage *backbuttonimage = [[UIImage imageNamed:@"backbutton.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 10)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backbuttonimage
                                                              forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

它按照我的意愿制作了...如果你有任何问题我希望你告诉我,如果你能添加一张照片,看看我是如何理解这个问题的。

这些是我的应用的价值观:

UIEdgeInsetsMake(0, 15, 0, 10)

度过愉快的一天:)

答案 1 :(得分:0)

这就是我制作自定义UIBarButtonItem的方式,它对我来说非常适合。试试这个:

UIButton *postView = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 61, 30)];
[postView setTitle:@"Post" forState:UIControlStateNormal];
[postView addTarget:self action:@selector(showAddPost) forControlEvents:UIControlEventTouchUpInside];
[postView setBackgroundImage:[UIImage imageNamed:@"bbi_texture.png"] forState:UIControlStateNormal];
[postView setBackgroundImage:[UIImage imageNamed:@"bbi_texture.png"] forState:UIControlStateHighlighted];

UIBarButtonItem *postButton = [[UIBarButtonItem alloc] initWithCustomView:postView];
[self.navigationItem setRightBarButtonItem:postButton];