自定义的 UINavigationBar 需要我展示一个自定义的“后退”按钮,我使用 navigationItem.leftBarButtonItem = myCustomizedButton ,但它的位置是固定的。

有没有人愿意分享我如何将这个按钮向右移动 40 像素?

最佳答案

您可以创建一个比图像大 40 像素的包含 View 。
以 40 像素偏移添加图像。
添加包含 View 作为 leftBarButtonItem。

代码如下:

// Create a containing view to position the button
UIView *containingView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, barButtonImage.size.width + 40, barButtonImage.size.height)] autorelease];

// Create a custom button with the image
UIButton *barUIButton = [UIButton buttonWithType:UIButtonTypeCustom];
[barUIButton setImage:barButtonImage forState:UIControlStateNormal];
barUIButton.frame = CGRectMake(40, 0, barButtonImage.size.width, barButtonImage.size.height);
[barUIButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];

[containingView addSubview:barUIButton];

// Create a container bar button
UIBarButtonItem *containingBarButton = [[[UIBarButtonItem alloc] initWithCustomView:containingView] autorelease];

// Add the container bar button
navigationItem.leftBarButtonItem = containingBarButton;

关于ios - 在 iOS 上,如何将 navigationItem.leftBarButtonItem 水平向右移动?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3643152/

10-12 00:16