2016-11-28 72 views
1

我有BtnDate按钮,点击后行为作品,并得到当前的日期与弹出窗口并增加内部BtnDate.titleLabel.text,当我用我的行动btnAddForm里面,以检查是否_myText是大于> 0明确_BtnDate.titleLabel.text按钮标题文字不清晰

但它不清除titleLabel文本字符串。

我的代码如下。

我想要的,如果用户条目_myText里面> 0的值为_BtnDate为空。

我的整个代码如下:

的.h文件中:

@property (nonatomic,retain) IBOutlet UIButton* BtnDate; 

的.m文件里面:

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 


     [_BtnDate addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; 
     _BtnDate.titleLabel.font = [UIFont systemFontOfSize:17]; 
     [[_BtnDate layer] setBorderWidth:1]; 
     [[_BtnDate layer] setCornerRadius:5]; 
     [[_BtnDate layer] setBorderColor:[UIColor lightGrayColor].CGColor]; 
     [_BtnDate setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
     [self.view addSubview:_BtnDate]; 


    } 


    -(void) showDateView{ 

     viewBack2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)]; 
     [viewBack2 setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]]; 
     [self.view addSubview:viewBack2]; 


     dateView = [[UIView alloc] initWithFrame:CGRectMake((viewBack2.frame.size.width-300)/2, (viewBack2.frame.size.height-350)/2, 300, 350)]; 
     [self.view addSubview:dateView]; 

     UIImageView *imageBackground = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg-popup"]]; 
     [imageBackground setFrame:CGRectMake(0, 0, 300, 350)]; 
     [dateView addSubview:imageBackground]; 
     [imageBackground release]; 

     UIButton *BtnDate = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [BtnDate setBackgroundImage:[UIImage imageNamed:@"okay.png"] forState:UIControlStateNormal]; 
     [BtnDate addTarget:self action:@selector(btnDateAction:) forControlEvents:UIControlEventTouchUpInside]; 
     [BtnDate setFrame:CGRectMake(80, 300, 140, 36)]; 
     [dateView addSubview:BtnDate]; 


     datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(25,25, 250, 250)]; 
     datePicker.datePickerMode = UIDatePickerModeDate; 

     datePicker.hidden = NO; 
     datePicker.date = [NSDate date]; 
     [datePicker addTarget:self 
         action:@selector(changeDateInLabel:) 
      forControlEvents:UIControlEventValueChanged]; 
     [dateView addSubview:datePicker]; 



    } 


    - (void)changeDateInLabel:(id)sender{ 

     NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
     [df setDateFormat:@"yyyy-MM-dd"]; 
     if (_BtnDate.selected==true) { 
      [_BtnDate setTitle:[NSString stringWithFormat:@"%@",[df stringFromDate:datePicker.date]] forState:UIControlStateNormal]; 
     } 

     [df release]; 
    } 


    -(IBAction)btnDateAction:(id)sender{ 

     if (_BtnDate.selected==true) { 
      _BtnDate.selected=false; 
     } 

     [dateView removeFromSuperview]; 
     [viewBack2 removeFromSuperview]; 


    } 



    - (void) buttonPressed:(UIButton*)sender { 

     if (sender == _BtnDate) { 

      [self showDateView]; 
      _BtnDate.selected=true; 
     } 


    } 


    - (IBAction)btnAddForm:(id)sender { 


    // I WANT TO CHECK _myText if is not null or > 0 must be clear _BtnDate.titleLabel.text dont do this ! 


    if ([NSNumber numberWithInt:[_myText.text intValue]] > 0) { 

      _BtnDate.titleLabel.text = @""; 


     } 
} 


    - (void)dealloc { 
     [_myText release]; 
     [_BtnDate release]; 
     [super dealloc]; 
    } 
    - (void)viewDidUnload { 
     [self setmyText:nil]; 
     [self setBtnDate:nil]; 
     [super viewDidUnload]; 
    } 
+0

@Rajat在那里我会增加吗? TY – SwiftDeveloper

回答

2

当你点击btnAddForm

这集

[BtnDate setTitle:@"" forState:UIControlStateNormal]; 
1

你总是需要更新按钮的标题时指定了ControlState-!有四种可能的值UIButtons:

UIControlStateNormal 
UIControlStateHighlighted 
UIControlStateDisabled 
UIControlStateSelected 

那么试试这个

[BtnDate setTitle:@"" forState:UIControlStateNormal]; 
1

在showDateView您使用本地变量BtnDate创建您的按钮,并在您的dateView安装。因此BtnDate财产可能是零。

更改创建按钮以使用实例变量的代码。

_BtnDate = [UIButton buttonWithType:UIButtonTypeCustom]; 
[_BtnDate setBackgroundImage:[UIImage imageNamed:@"okay.png"] forState:UIControlStateNormal]; 
[_BtnDate addTarget:self action:@selector(btnDateAction:) forControlEvents:UIControlEventTouchUpInside]; 
[_BtnDate setFrame:CGRectMake(80, 300, 140, 36)]; 
[dateView addSubview:_BtnDate]; 

顺便说一句,性质和其他变量的名字应该用小写字母开头,所以BtnDate应该btnDate