0

我当前的导航栏如下所示:

在此处输入图像描述

如您所见,我需要将其向右移动。不确定我设置是否正确,有什么建议吗?

这是代码:

-(void)customizeNavigationBar{

    //*** Nav bar Background ***
    //Image being used
    UIImage *backgroundImage = [UIImage imageNamed:@"navBarBackground"];

    //Set navigation bar image
    [self.navigationController.navigationBar setBackgroundImage:backgroundImage forBarMetrics:UIBarMetricsDefault];

    //*** Search button**
    //Get Image
    UIImage* searchImage = [UIImage imageNamed:@"navSearchButton"];

    //Set frame
    CGRect frame = CGRectMake(0, 0, searchImage.size.width, searchImage.size.height);

    //Create button
    UIButton *searchButton = [[UIButton alloc] initWithFrame:frame];

    //Set background images (selected and not)
    [searchButton setBackgroundImage:searchImage forState:UIControlStateNormal];
    [searchButton setBackgroundImage:[UIImage imageNamed:@"navSearchButtonSelected"] forState:UIControlStateSelected];

    //Add action
    [searchButton addTarget:self action:@selector(search)
          forControlEvents:UIControlEventTouchUpInside];

    //Set highlight on
    [searchButton setShowsTouchWhenHighlighted:YES];

    //Create nav buttons
    UIBarButtonItem *navSearchBtn =[[UIBarButtonItem alloc] initWithCustomView:searchButton];

    //Add to nav bar
    [self.navigationItem setLeftBarButtonItem:navSearchBtn];
}
4

1 回答 1

1
  • 使用 setImage:forState: 将背景图像设置为 UIButton(而不是 setBackgroundImage:)
  • 将 UIButton 的框架设置大一点(size.width)
于 2013-06-04T18:24:27.023 回答