gpt4 book ai didi

objective-c - BarButtonItem 因未知原因调整大小

转载 作者:行者123 更新时间:2023-11-29 04:20:13 25 4
gpt4 key购买 nike

我有一个像这样初始化的按钮>

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 进行“智能”调整大小。我不需要任何调整大小。但由于某种原因,它的表现就像它的插图是事件的,并且它被调整为具有更大的宽度,大约图片的中间一半被相当程度地拉伸(stretch)以提供更宽的按钮。

为什么会这样?我怎样才能防止这种情况发生?

最佳答案

使用自定义图像实现栏按钮项目的最简单方法是:

  1. 将 UIButton 拖到 Storyboard上。
  2. 将按钮类型设置为自定义,并设置该按钮的图像。
  3. 将按钮拖到工具栏上。

Storyboard自动创建一个 UIBarButtonItem 并将您的 UIButton 添加为 subview 。或者,如果您不想使用 Storyboard,您可以实现以下内容:

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

关于objective-c - BarButtonItem 因未知原因调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13073170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com