我有 6 个 UILabels
,它们将显示如下日期:
Jan,2016 (label)
(button) < **27Dec 28Dec 29Dec 30Dec 31Dec 1Jan** >(Button)
此外,当用户可以移至往后日期或上一个日期时,我在两侧都有两个箭头 UIButton
。我有一个标签可以根据我显示的日期显示当前月份
这是我的完整代码:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
firstdate = [NSDate date];
firstdate = [NSDate dateWithTimeInterval:-(5*86400) sinceDate:firstdate];
[self dateChange];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM,yyyy"]; dateLabel.text = [dateFormat stringFromDate:[NSDate date]];
dateLabel.text = [dateFormat stringFromDate: firstdate];
}
-(void)dateChange
{
NSArray *labelArray = @[flabel, slabel, tlabel, folabel, fivlabel,sixlabel];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSCalendar *calendar = [NSCalendar currentCalendar];
dateFormatter.dateFormat = @"ddMMM";
for (NSInteger i = 0; i < 6; ++i) {
NSDate *nextDate = [calendar dateByAddingUnit: NSCalendarUnitDay value:i toDate:firstdate options:nil];
UILabel *label = (UILabel *)labelArray[i];
label.text = [dateFormatter stringFromDate:nextDate];
if (i==5) {
dateFormatter.dateFormat=@"MMM,yyyy";
dateLabel.text = [[dateFormatter stringFromDate:nextDate] capitalizedString];
}
}
}
- (IBAction)calRight:(id)sender {
firstdate = [NSDate dateWithTimeInterval:86400 sinceDate:firstdate];
[self dateChange];
}
- (IBAction)calLeft:(id)sender {
firstdate = [NSDate dateWithTimeInterval:-86400 sinceDate:firstdate];
[self dateChange];
}
所以我需要什么。例如,就像说的那样 - 今天是 1 月 1 日
。所以如果用户打开我的应用程序,他们将在 最后日期看到
后跟前面的 1 月 1 日
december date
就像我上面提到的那样。
所以在这种情况下,如果 current date
的用户意味着 Jan1
意味着那么我的 Rightbutton
应该被 disabled
.同时,当用户使用 left button
进入 november month
菜单时,我的 right button
应该 enabled
当用户处于当前日期
时,只有我的右键
应该被禁用
。
请帮我解决我有一个想法!
if (some condition)
[leftBtn setEnabled:NO];
else
[leftBtn setEnabled:YES];
但是我不确定条件和代码。
最佳答案
用下面的代码改变你的方法 dateChange 并且 btnRight 是你的右侧按钮所以改变你给它的名字。
-(void)dateChange
{
NSArray *labelArray = @[flabel, slabel, tlabel, folabel, fivlabel,sixlabel];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSCalendar *calendar = [NSCalendar currentCalendar];
dateFormatter.dateFormat = @"ddMMM";
for (NSInteger i = 0; i < labelArray.count; ++i) {
NSDate *nextDate = [calendar dateByAddingUnit:NSCalendarUnitDay value:i toDate:firstdate options:nil];
UILabel *label = (UILabel *)labelArray[i];
label.text = [dateFormatter stringFromDate:nextDate];
if (i==(labelArray.count-1)) {
dateFormatter.dateFormat=@"MMM,yyyy";
dateLabel.text = [[dateFormatter stringFromDate:nextDate] capitalizedString];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
if ([[dateFormat stringFromDate:nextDate] isEqualToString:[dateFormat stringFromDate:[NSDate date]]])
btnRight.enabled = false; //It's the same day
else
btnRight.enabled = true;
}
}
}
关于ios - 禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34553900/