我有一个按钮>
初始化self.button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(doAction)];
稍后,我正在附加自定义背景,例如>
[self.button setBackgroundImage:[UIImage imageNamed:@"customNavBar_button_right_enabled"]
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
并将其放在导航栏上。
[self.navigationItem setRightBarButtonItem:self.button
animated:NO];
此图片尺寸固定。我希望该按钮具有完全自定义的背景图像,而无需使用UIEdgeInsets进行“智能”调整。我不希望任何调整大小。但由于某种原因,它的行为类似于它的插图将是活动的并且它被调整为具有更大的宽度,大致中间的一半图片被拉伸以提供更宽的按钮。
为什么会这样?我怎样才能防止这种情况发生?
答案 0 :(得分:1)
使用自定义图像实现条形按钮项目的最简单方法是:
故事板会自动创建一个UIBarButtonItem并将您的UIButton添加为子视图。或者,如果您不想使用故事板,则可以实现以下内容:
// Initialize the UIButton
UIImage *buttonImage = [UIImage imageNamed:@"buttonImage.png"];
UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
[aButton setImage:buttonImage forState:UIControlStateNormal];
aButton.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
// Initialize the UIBarButtonItem
UIBarButtonItem aBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aButton];
// Set the Target and Action for aButton
[aButton addTarget:self action:@selector(aButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
希望它有所帮助!
编辑:不要忘记将aBarButtonItem添加到UIToolbar。