相关疑难解决方法(0)

更改UINavigationBar中UIBarButtonItem的宽度

我正在创建一个UIBarButtonItem并将其添加到我的导航栏,如下所示:

(void)viewDidLoad { 

   ...

   // Add the refresh button to the navigation bar
   UIButton *refreshButton = [UIButton buttonWithType:UIButtonTypeCustom];
   [refreshButton setFrame:CGRectMake(0,0,30,30)];
   [refreshButton setImage:[UIImage imageNamed:@"G_refresh_icon.png"] forState:UIControlStateNormal];
   [refreshButton addTarget:self action:@selector(refreshData) forControlEvents:UIControlEventTouchUpInside];
   UIBarButtonItem *refreshBarButton = [[[UIBarButtonItem alloc] initWithCustomView:refreshButton] autorelease];
   self.navigationItem.leftBarButtonItem = refreshBarButton;
}
Run Code Online (Sandbox Code Playgroud)

它在我运行时看起来是正确的,但我可以通过点击导航栏从x = 0到大约100来选择条形按钮项目.如何调整可选区域的宽度为30像素?

uinavigationbar uibarbuttonitem uinavigationitem ios

20
推荐指数
6
解决办法
5万
查看次数

将图像添加到UIBarButtonItem按钮

我使用以下代码将UITabButtonItem添加到我的视图控制器上.任何人都可以告诉我它是否可以将图像与它联系起来?

UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(favouriteButtonClicked:)]; 
viewController2.navigationItem.rightBarButtonItem = button; 
[button release];
[self.navigationController pushViewController:viewController2 animated:YES];
Run Code Online (Sandbox Code Playgroud)

我在其他地方使用以下代码,但在上面的代码我将viewcontroller推到我当前的视图,这段代码不起作用.我不得不使用上面的代码.

UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"unselected.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(favouriteButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(280, 25, 30, 30)];
viewController2.navigationController.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease];

[self.navigationController pushViewController:viewController2 animated:YES];
Run Code Online (Sandbox Code Playgroud)

我不知道有什么问题但是当我用initWithBarButtonSystemItem替换这个自定义按钮代码时,它工作得很好!!!

最后,我整理出这个问题,并张贴在这里工作的代码,但仍,如果我有在baseviewcontroller一个按钮,我不明白,我添加它,就象下面,这是行不通的!我必须在viewwillappear中使用我接受的答案中给出的代码!

    [favButton addTarget:self action:@selector(favouriteButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
     self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease];  
Run Code Online (Sandbox Code Playgroud)

以下代码仍然无法正常工作!不知道发生了什么.

MPMoviePlayerViewController *videoController = [[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:filePath]] autorelease];

UIButton* favouritebutton =  [UIButton buttonWithType:UIButtonTypeCustom];
[favouritebutton setBackgroundImage:[UIImage imageNamed:@"unselected.png"] forState:UIControlStateNormal];
[favouritebutton addTarget:self action:@selector(favouriteButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
[favouritebutton …
Run Code Online (Sandbox Code Playgroud)

iphone image uibarbuttonitem

17
推荐指数
3
解决办法
2万
查看次数

如何在UIToolbar中沿长度分配按钮?

在我的应用程序中,我使用了一些代码,动态地将带有图像的按钮添加到UIToolbar:

[self.navigationController setToolbarHidden:NO];
UIImage *buttonImage1 = [UIImage imageNamed:@"1.png"];
UIImage *buttonImage2 = [UIImage imageNamed:@"2.png"];
UIImage *buttonImage3 = [UIImage imageNamed:@"3.png"];

UIBarButtonItem *toolButton1 = [[UIBarButtonItem alloc] initWithImage:buttonImage1 style:UIBarButtonItemStylePlain target:self action:@selector(btnSettingsClick:)];
UIBarButtonItem *toolButton2= [[UIBarButtonItem alloc] initWithImage:buttonImage2 style:UIBarButtonItemStylePlain target:self action:@selector(btnSettingsClick:)];
UIBarButtonItem *toolButton3 = [[UIBarButtonItem alloc] initWithImage:buttonImage3 style:UIBarButtonItemStylePlain target:self action:@selector(btnSettingsClick:)];

[self setToolbarItems:[NSArray arrayWithObjects:toolButton1, toolButton2, toolButton3, nil]];
Run Code Online (Sandbox Code Playgroud)

但它运作不佳:

截图

如果我尝试设置另一个按钮样式:

toolButton1.style = UIBarButtonSystemItemFlexibleSpace;
toolButton2.style = UIBarButtonSystemItemFlexibleSpace;
toolButton3.style = UIBarButtonSystemItemFlexibleSpace;
Run Code Online (Sandbox Code Playgroud)

它看起来也很差:

截图2

我怎样才能解决这个问题?

objective-c uitoolbar uibarbuttonitem ios

7
推荐指数
1
解决办法
3118
查看次数