gpt4 book ai didi

cocoa-touch - UINavigationController 上的自定义 titleView 动画不正确

转载 作者:行者123 更新时间:2023-12-04 08:46:25 24 4
gpt4 key购买 nike

我可能在这里做错了什么,因为这看起来有点愚蠢。
我在我的 UINavigationController 上设置了一个自定义 titleView(以 UILabel 的形式),它在每个页面上都是相同的。为此,我在我的应用程序委托(delegate)中创建了一个函数来正确显示标签。然后,在我将其推送到导航堆栈之后,我在任何 subview 上调用此函数。
这是代码(这可能比我的解释更有意义):

//In MyAppDelegate.m:
- (void)showTitleForNavigationController:(UINavigationController*) navController {
UILabel *label = [[UILabel alloc] init];
// set up label attributes
// ...
[label sizeToFit]; //without this line my label won't show at all
[navController.navigationBar.topItem setTitleView:label];
[label release];
}

// In SomeViewController.m, when pushing another controller onto the stack:
UIViewController *otherViewController = //initialize other view controller;
[self.navigationController pushViewController:otherViewController animated:YES];
[(MyAppDelegate*)[[UIApplication sharedApplication] delegate] showTitleForNavigationController:otherViewController.navigationController];

我的问题是,当我将下一个 View Controller 插入堆栈时,新 Controller 平滑地滑过,在动画的整个持续时间内,标签都会粘在左上角,然后在动画完成后最终卡入到位。它看起来真的很奇怪和丑陋。
如何正确设置标签,使其从下一个 View 顺利滑动?当然,我错过了一些简单的事情......

最佳答案

这个问题的答案很晚,但我刚刚遇到了同样的问题,并找到了另一种解决方法,而不使用图像。以为我会分享我的解决方案,因为它可能会对某人有所帮助。

在我的情况下,我将自定义 UILabel 设置为 titleview,并且我意识到只有在 viewDidLoad 方法中设置 titleview 属性时,它才能正确设置动画。然而,在某些情况下,我还不知道 viewDidLoad 中的标题(例如,在某些情况下,我需要使用来自 http 请求的标题)。因此,我针对这些情况的解决方案是在 viewDidLoad 中将 titleview 属性设置为带有文本 @""的自定义标签,并且每当我获得真正的标题时,我只更改自定义标签的文本属性。

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.

//set temporary title, the MBMUINavigationBarTitleView is a UIView subclass whose viewWithTitle method returns an autoreleased UIlabel with my custom settings, custom font etc.
self.navigationItem.titleView = [MBMUINavigationBarTitleView viewWithTitle:@" "];
}

//somewhere later, when I have the real title
UILabel* titleLabel = (UILabel*)self.navigationItem.titleView;
[titleLabel setText:theRealTitle];

关于cocoa-touch - UINavigationController 上的自定义 titleView 动画不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3697260/

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