gpt4 book ai didi

ios - iOS 应用程序中 UIToolbar 的奇怪行为

转载 作者:行者123 更新时间:2023-11-29 03:29:54 26 4
gpt4 key购买 nike

在我当前的项目中,我有一个基于导航 Controller 的应用程序。应用程序中的某些 View 需要在 View 底部有一个工具栏。我正在使用以下内容以编程方式创建工具栏(摘自 TableView Controller 中的 viewDidLoad):

UIBarButtonItem *reloadButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refreshList)];

[reloadButton setTitle:@"Refresh"];
[reloadButton setTintColor:[UIColor whiteColor]];

self.navigationController.toolbar.barStyle = UIBarStyleBlackTranslucent;
[self.navigationController.toolbar sizeToFit];
CGFloat toolbarHeight = [self.navigationController.toolbar frame].size.height;
[self.navigationController.toolbar setFrame:CGRectMake(CGRectGetMinX(self.view.bounds),
438,
CGRectGetWidth(self.view.bounds),
toolbarHeight)];
NSArray *toolbarItems = [[NSArray alloc] initWithObjects:reloadButton, nil];
[self setToolbarItems:toolbarItems];
[self.navigationController setToolbarHidden:NO];

这在大多数 View 中都很有效。但是,我现在使用相同的代码将它合并到另一个 View 中。在该 Controller 中,工具栏出现在 View 底部上方约一英寸处——它不会像在其他 View Controller 中那样吸附到 View 底部。导航到问题 View 后,其他 View 中的其他工具栏开始表现出相同的行为。这只发生在模拟器中,而不是在我的物理设备上。但是,我目前只有 iPhone 4 作为我的物理设备。这是模拟器中的错误还是某处问题的指示?谢谢!

最佳答案

您将 y 位置设置为硬编码值 438。对于较高的 iPhone 5,这将导致它不会出现在屏幕底部。您还应该计算 y 位置,也许可以使用:

CGRectGetMaxY(self.view.bounds) - toolbarHeight

这会导致:

[self.navigationController.toolbar setFrame:CGRectMake(CGRectGetMinX(self.view.bounds),
CGRectGetMaxY(self.view.bounds) - toolbarHeight,
CGRectGetWidth(self.view.bounds),
toolbarHeight)];

它也可能与导航栏和状态栏的存在有关

关于ios - iOS 应用程序中 UIToolbar 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19940865/

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