我已经实现了样式UIBarSystemItem的刷新按钮,只要按下它就会被禁用10秒。
我想通过显示启用之前的剩余时间来进一步改进它。最快的方法是什么?
非常感谢提前。
按下按钮时调用。
-(void)refreshButton {
[self performSelector:@selector(enableRefreshButton) withObject:nil afterDelay:10];
self.navigationItem.rightBarButtonItem.enabled = NO;
}
-(void)enableRefreshButton {
self.navigationItem.rightBarButtonItem.enabled = YES;
}
编辑:刷新按钮的格式为UIBARSystemItemRefresh 。
我目前正在做这个,因为答案建议我使用NSTimer。该按钮确实启用并相应地禁用,但文本不会更改。
@inteface ... {
int count;
}
-(void)viewDidLoad{
UIBarButtonItem *refresh = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refreshButtonPressed)];
self.navigationItem.rightBarButtonItem = refresh;
}
-(void)refreshButtonPressed {
//do something here...
count = 10;
self.myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateTimeLeft) userInfo:nil repeats:YES];
}
-(void)updateTimeLeft{
count --;
NSLog(@"%i", count);
self.navigationItem.rightBarButtonItem.title = [NSString stringWithFormat:@"%i", count];
self.navigationItem.rightBarButtonItem.enabled = NO;
if (count == 0) {
self.navigationItem.rightBarButtonItem.enabled = YES;
[self.myTimer invalidate];
}
}
我可以将title
属性与UIBarButtonSystemItem一起使用吗?
答案 0 :(得分:0)
您可以使用此方法
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats
答案 1 :(得分:0)
为此,您需要实施NSTimer
在.h文件中声明int
变量count
。并在count==10
中使用viewDidLoad/viewWillAppear
初始化它,因为您的代码已经过去了。
在performSelector中调用此方法
- (void)updateCount:(NSTimer *)aTimer {
count--;
self.navigationItem.rightBarButtonItem.enabled = YES;
self.navigationItem.rightBarButtonItem.title = [NSString stringWithFormat:@"%d",count];
NSLog(@"%i", count);
if (count == 0) {
self.navigationItem.rightBarButtonItem.enabled = NO;
self.navigationItem.rightBarButtonItem.title = [NSString stringWithFormat:@"YOUR BAR BUTTON NAME"];
[timer invalidate];
timer = nil;
}
}
修改强>
我认为这个链接肯定会解决问题。这几乎和你问的一样。请仔细阅读链接。 http://www.richardhyland.com/diary/2008/12/21/some-cool-tips-and-tricks-for-the-iphone-sdk/