gpt4 book ai didi

ios - Compose UIBarButtonItem 在进入 View 时稍微改变位置

转载 作者:技术小花猫 更新时间:2023-10-29 10:28:23 26 4
gpt4 key购买 nike

在导航栏中使用 UIBarButtonSystemItemCompose 按钮​​呈现新 View 时,位置会稍微偏离并在 View 进入 View 后进行调整。

Compose button changes position slightly when coming into view

我认为这是 iOS(使用 8.3 版)中的错误。它仅在使用 UIBarButtonSystemItemCompose 时发生。其他类型的按钮(系统、文本或自定义)不会发生这种情况。

复制此错误所需的唯一代码是将此 ViewController 代码与将进入 View 的 View 一起使用:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

UIBarButtonItem* composeBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera
target:nil
action:nil];

[self.navigationItem setRightBarButtonItem:composeBarButtonItem animated:YES];
}

@end

我已经在 GitHub 上用最少的代码创建了一个存储库来重现这个问题:https://github.com/jvdvleuten/iOSComposeBarButtonItemBug

看起来与此相关:UIBarButtonItems shift position when UINavigationController is presented modally ,除了我的错误仅在使用 UIBarButtonSystemItemCompose 时出现。

有什么想法吗?

最佳答案

我使用了 Sergey 的回答,但在我的按钮右侧保留了一个空白区域。我用负垫片修复了这个问题,现在效果很好:

UIBarButtonItem* composeBarButtonItem =
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose
target:nil
action:nil];

UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
target:nil action:nil];
negativeSpacer.width = -6;

UIBarButtonItem *dumbBarButtonItem = [UIBarButtonItem new];

self.navigationItem.rightBarButtonItems = @[dumbBarButtonItem, negativeSpacer, self.composeBarButtonItem];

关于ios - Compose UIBarButtonItem 在进入 View 时稍微改变位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29795465/

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