OGeek|极客世界-中国程序员成长平台

标题: iOS - 导航项中的 UIBarButtonItem 角间距 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 20:21
标题: iOS - 导航项中的 UIBarButtonItem 角间距

我正在以编程方式在 UINavigationItem 中创建 RightBarButtonItem。 使用这个简单的代码

UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
[backButton setImage:[UIImage imageNamed"concate_back_icon.png"] forState:UIControlStateNormal];
[backButton addTarget:self actionselector(backButtonClicked forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

产生正确的结果,但有一个问题,底部和屏幕角之间的空间很小,我不想要。

1st image

为此,我在按钮图像中添加间距,使用边缘插图

[backButton setImageEdgeInsets:UIEdgeInsetsMake(0, -10, 0,10)];

这给了我很好的视觉效果,但可点击区域保持不变,因此用户大部分时间都错过了点击。

Image 2

现在我被困在这里了。 请让我知道是否有其他方法可以更改条形按钮项的角空间。 我必须坚持使用 navigationItem。



Best Answer-推荐答案


只需尝试根据您的期望将右边缘插图设置为 barbutton。这个对我有用。如果您遇到问题,请告诉我。谢谢。

let rightBarButton = UIButton(type: .custom)
rightBarButton.setImage(UIImage.init(named: "Settings"), for: .normal)
rightBarButton.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
rightBarButton.addTarget(self, action: #selector(someAction), for: .touchUpInside)
rightBarButton.contentEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: -30.0) // Right edge insets
let rightBar = UIBarButtonItem(customView: rightBarButton)
self.navigationItem.rightBarButtonItem  = rightBar

关于iOS - 导航项中的 UIBarButtonItem 角间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51318149/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4