我正在使用基于UIImageView的动画来显示自定义活动指示器。 以下代码负责设置:
+ (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
的位置似乎都是错误的。
以下结果显示问题:
请注意活动指标如何显示在"群组"按钮。
这个问题来自哪里?我该如何解决?
答案 0 :(得分:0)
我认为问题是虽然你将titleView设置为nil,但你不会从视图中删除加载器,所以它的框架会转到(0,0)位置。
尝试以下方法:
+ (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;
}
每当设置
titleView = nil
也做
[[self.navigationController.view viewWithTag:999] removeFromSuperView];
答案 1 :(得分:0)
这个问题是这个问题非常好的演示,答案如下: Stackoverflow title moves while push/pop of viewcontroller
长话短说:
-fms-extensions