我想在我的应用中使用自己的图像作为动作按钮。我的图像尺寸为30px X 30px。在我的应用程序中,我使用代码:
UIBarButtonItem *heart = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"action@2x.png"] style:UIBarButtonItemStyleDone target:self action:@selector(theactionbutton)];
self.navigationItem.rightBarButtonItem = the action;
然而,按钮似乎离左边太远了。我已经附加了两个图像,第一个显示原始操作按钮,第二个显示我的自定义图像,用于比较。有什么想法,为什么它被移到左边?
答案 0 :(得分:0)
您可以使用按钮图像插图,例如
barButtonItem.imageInsets = .init(top: 0, left: 10, bottom: 0, right: 10)
答案 1 :(得分:-1)
创建图片
UIImage *image = [UIImage imageNamed:@"image"];
创建按钮并设置背景图像和目标操作。
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height);
[button setBackgroundImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(theactionbutton) forControlEvents:UIControlEventTouchUpInside];
创建UIView并添加按钮作为子视图
UIView *view =[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];
[view addSubview:button];
使用自定义视图创建条形按钮项目,并将其设置为导航栏右侧项目
UIBarButtonItem *actionButton = [[UIBarButtonItem alloc] initWithCustomView:view];
self.navigationItem.rightBarButtonItem = actionButton;
注意: @ 2x图像应该是双倍大小。如果你的iamgeView是30x30,那么你的Image应该是60X60。如果您有30x30图像并且名称为@ 2x,则它将被用作15x15,因此,使您的图像为双倍大小或使用它而不使用@ 2x