首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UINavigationItem titleView动画

UINavigationItem titleView动画
EN

Stack Overflow用户
提问于 2015-04-13 02:52:31
回答 2查看 1.9K关注 0票数 6

我使用了一个基于UIImageView的动画来显示一个自定义的活动指示器。以下代码负责设置此设置:

代码语言:javascript
复制
+ (void)startLoadingActivity:(UIViewController *)vc {
    vc.parentViewController.navigationItem.titleView = [UIImageView imageViewWithPath:@"loading_" count:10 duration:1.3 frame:CGRectMake(0, 0, 22, 22)];
}

下面是UIImageView+Animation类别的要点。

每当我启动web请求时,我就会启动活动指示器,而每当请求完成时,我就会通过将titleView属性设置为nil来停止它。

结果是这样的:

请求方法也被调用到视图控制器的-viewDidAppear:方法中。

但是,每当动画在过渡期间启动时,UIImageView的位置似乎都是错误的。

以下结果显示了问题:

请注意活动指示器如何显示在“组”按钮的顶部。

这个问题是从哪里来的?我该怎么解决它呢?

EN

回答 2

Stack Overflow用户

发布于 2015-04-13 03:20:37

我认为问题在于,尽管您将titleView设置为nil,但您并没有从视图中移除加载器,因此它的frame转到了(0,0)位置。

尝试以下操作:

代码语言:javascript
复制
+ (void)startLoadingActivity:(UIViewController *)vc {
    UIImageView *imageView = [UIImageView imageViewWithPath:@"loading_" count:10 duration:1.3 frame:CGRectMake(0, 0, 22, 22)];
    imageView.tag = 999;
    vc.parentViewController.navigationItem.titleView = imageView;
}

无论何时设置

代码语言:javascript
复制
titleView = nil

也要做

代码语言:javascript
复制
[[self.navigationController.view viewWithTag:999] removeFromSuperView];
票数 0
EN

Stack Overflow用户

发布于 2017-08-07 19:09:14

这个问题是这个问题的一个很好的演示,答案在这里:Stackoverflow title moves while push/pop of viewcontroller

长话短说:

.autoresizingMask = UIViewAutoresizingFlexibleTopMargin

  • Don't中使用
  1. do it in "viewWillAppear:“(在DidAppear或更高版本中的do in viewDidLoad / update )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29593287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档