RandomClass *class = [[RandomClass alloc] init];[class setModalTransitionStyle: UIModalTransitionStyleCrossdissolve]; //an animation[self presentModalVIEwController: class animated: YES];[class release];
我已经删除了RandomClass中的日期选择器,并注意到我可以很快地呈现RandomClass,当我在视图中插入日期选择器时,它会再次减慢事情.我试图以编程方式添加日期选择器,并以不同的线程呈现模态视图控制器,但仍然存在滞后.
你有同样的问题吗?你知道如何解决它吗?我非常感谢你的答案和帮助.谢谢!
解决方法 我正在经历与模态视图演示相同的缓慢表现.我通过牺牲一些记忆来支持表现来到一个解决方案.背景:
我的应用程序正在使用Model-VIEw-Controller-Store模型.商店是一个照顾我的模型的单身,因此,一旦实例化,它几乎可以从任何一个类中访问.我正在使用Store类通过属性来保持某些昂贵的类(如NSCalendar,NSDateFormatter等).
解:
我在仓库单身人士中打了一个UIDatePicker属性,允许通过任何类访问它.
在Singleton的界面中:
@property (strong,nonatomic) UIDatePicker *datePicker;
在Singleton的实现中,我为datePicker实现了一个getter.
- (UIDatePicker *)datePicker{ if (!_datePicker) { _datePicker = [[UIDatePicker alloc] init]; } return _datePicker;}
这确保了datePicker只被创建一次,它可以从我的应用程序的任何地方访问.
现在在需要使用选择器的类的vIEwDIDLoad方法中,通过getter方法获取属性:
UIDatePicker *aDatePicker = [[MySingleton shareInstance] datePicker];// Set it's location. [aDatePicker setFrame:CGRectMake(0.0,236.0,self.vIEw.frame.size.wIDth,216.0)];// Connect to any actions [aDatePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];// Add it to you vIEw [self.vIEw addSubvIEw:[[MySingleton shareInstance] datePicker]];
第一次创建日期选择器时,会发生缓慢的行为.每隔一段时间,模态视图就会看起来很快(取决于你在视图中还有什么).
本质上我正在创建一个全局变量并保持它,所以我不必每次创建它,而是以内存为代价.性能差异在我的应用案例中是值得的.
注意:
有一个值得注意的注意事项.由于datePicker很可能会超出模态视图,因此必须确保datePicker不指向任何释放的内存.
所以如果在vIEwDIDLoad中将“self”分配为目标:
[aDatePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
重要的是在诸如vIEwDIDdisappear之类的方法中添加此代码以防止崩溃:
[aDatePicker removeTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];总结
以上是内存溢出为你收集整理的objective-c – UIDatePicker减缓了事情全部内容,希望文章能够帮你解决objective-c – UIDatePicker减缓了事情所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)