IOS中导航栏项的调整

IOS中导航栏项的调整,ios,Ios,我有导航键。我已经为它使用了图像,但我面临一个问题,如果我点击按钮,它会改变它的位置,并从导航栏向下移动到视图控制器的视图中。我的密码是 UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleDone

我有导航键。我已经为它使用了图像,但我面临一个问题,如果我点击按钮,它会改变它的位置,并从导航栏向下移动到视图控制器的视图中。我的密码是

 UIBarButtonItem *rightButton = [[UIBarButtonItem alloc]
                                initWithTitle:@""
                                style:UIBarButtonItemStyleDone
                                target:self
                                action:@selector(rightBtnClicked:)];
[rightButton setImage:[UIImage imageNamed:@"right.png"]];
rightButton.tintColor=[UIColor whiteColor];

self.navigationItem.rightBarButtonItem = rightButton;

请尝试以下代码:

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@“right.png”] style:UIBarButtonItemStylePlain target:self action:@selector(rightButtonClicked:)];
   self.navigationController.navigationItem.rightBarButtonItem = barButton;

我刚检查过这是否有效

    UIButton *someButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
[someButton setImage:[UIImage imageNamed:@"IMG_1148.jpg"] forState:UIControlStateNormal];
[someButton addTarget:self action:@selector(requestButton)
     forControlEvents:UIControlEventTouchUpInside];


UIBarButtonItem *barButton =[[UIBarButtonItem alloc] initWithCustomView:someButton];
self.navigationItem.rightBarButtonItem=barButton;
或者你可以这样做

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 20, 20);
UIImage *image = [[UIImage imageNamed:@"back.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[button setImage:image forState:UIControlStateNormal];
button.tintColor = [UIColor redColor];
[button addTarget:self action:@selector(requestButton)
     forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *mailbutton =[[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.rightBarButtonItem=mailbutton;

像这样试试,我希望它能帮助你

//OBJC

UIImage *img_table =[UIImage imageNamed:@"right.png"];

UIButton *button = [UIButton buttonWithType: UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, img_table.size.width, img_table.size.height);
[button setImage:img_table forState: UIControlStateNormal];
[button setImage:img_table forState: UIControlStateSelected];
[button addTarget: self action:@selector(rightBtnClicked:) forControlEvents: UIControlEventTouchUpInside];

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:button];
barButton.tintColor=[UIColor whiteColor];
self.navigationItem.rightBarButtonItem = barButton;
//Swift

let img_table = UIImage(named: "right.png")
    let button = UIButton.init(type: UIButtonType.custom)
    button.frame = CGRect.init(x: 0, y: 0, width: (img_table?.size.width)!, height: (img_table?.size.height)!)
    button.setImage(img_table, for: UIControlState.normal)
    button.setImage(img_table, for: UIControlState.selected)

    button.addTarget(self, action: @selector(rightBtnClicked:)), for: UIControlEvents.touchUpInside)
    let barButton = UIBarButtonItem.init(customView: button)
    barButton.tintColor=[UIColor whiteColor];
   self.navigationItem.rightBarButtonItem = barButton

问题在于,您需要为图像提供一个框架。因此,请点击一个UIButton并设置图像和操作。然后将UIButton添加到UIBarButtonim

以下是适用于您的工作代码:

UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"right.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(rightButtonClicked:)forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, 53, 31)];
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.rightBarButtonItem = barButton;

你试过了吗?你提供的链接在导航栏中没有显示按钮@parvbhasker在
右侧b单击时发生了什么
?它没有在我遵循代码时显示图像@布里耶什Shiroya@umer-你有时间检查这个吗,因为我刚刚检查了它在xcode 8.3.3中的工作情况。我想要白色的@Parv BhaskerThanks需要很多信息:)@尼马尔辛