IOS中的导航栏项目调整

时间:2017-07-14 12:00:46

标签: ios

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

 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;

enter image description here

enter image description here

4 个答案:

答案 0 :(得分:1)

我刚检查过这是否有效

    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;

答案 1 :(得分:0)

试试这段代码:

.modal{
    &.fade .modal-dialog {
    .translate-none();
    .transition-transform(~"0.3s ease-out");
    }
    &.in .modal-dialog { .translate-none() }
}

答案 2 :(得分:0)

尝试这样,我希望它会对你有所帮助。

// 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

答案 3 :(得分:0)

问题是你需要为图像提供一个框架。所以拿一个UIButton并设置图像和动作。然后将UIButton添加到UIBarButtonItem。

以下是您的工作代码:

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;