setting image for UIBarButtonItem - image stretched

前端 未结 6 1847
北荒
北荒 2020-12-03 13:31

When I try to use UIBarButtonItem\'s \"initWithImage\" to initialize a navigation bar custom image, it comes out washed-up and stretched against a black navigation bar. This

6条回答
  •  南方客
    南方客 (楼主)
    2020-12-03 14:07

    The best way to do this is to create a button, set its background image, and set its action. Then a UIBarButtonItem can be created using this button as the custom view. Here's my example code:

     UIButton *settingsView = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 61, 30)];
    [settingsView addTarget:self action:@selector(SettingsClicked) forControlEvents:UIControlEventTouchUpInside];
    [settingsView setBackgroundImage:[UIImage imageNamed:@"settings"] forState:UIControlStateNormal];
    UIBarButtonItem *settingsButton = [[UIBarButtonItem alloc] initWithCustomView:settingsView];
    [self.navigationItem setRightBarButtonItem:settingsButton];
    

提交回复
热议问题