UIAlertView的一些使用

一些关于UIALertView的使用,在开发一些小项目中,对于一些提示语,一些输入框,通常都是直接使用native的alertView即可。而且,UIAlertView除了本身自带几种格式外,还可以放置多种控件,包括pickupView、UItextView、UITextField等,例如要实现像微博的多行文本输入,并显示当前输入数字的功能

//
-(void)addInfo {
   //对成员变量初始化
    _textView = [[UITextView alloc]initWithFrame:CGRectMake(0, 0, self.view.width, self.view.height)];
    _textView.delegate = self;
    //获取曾填写过的数据(有一个发送请求可返回上次填写的方法,在此不予显示)
    NSString *lastInfo = *********;
    if (lastInfo != 0) {
        _textView.text = lastInfo;
    }
    //创建一个alertView
    _alertView = [[UIAlertView alloc]initWithTitle:@"请填写备注" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil]; 
    //将文本框添加到alertView上(注意ios7之后不可直接用addSubiew的方法了
    if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
        [_alertView setValue:_textView forKey:@"accessoryView"];
    }else{
        [_alertView addSubview:_textView];     
    }
    //显示alertView
    [_alertView show]    
}
//#pragma mark - AlertViewDelegate
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{   
    switch (buttonIndex) {
        case 1:{//确定
             NSString *lastInfo = *********;
             NSString *newText = _textView.text;
            if (newText.length == 0) {//内部的提示方法
                [****** ******:@"你还未填写备注"];
                return;
            } else if([newText isEqualToString:sellerMemo]) {
                [****** ******:@"你还未做任何更改"];
                return;
            }else{
                [self changeInfo:newText];
            }
        }
            break;
        default:
            break;
    }
}
//当textView在编辑时会调用改方法
- (void)textViewDidChange:(UITextView *)textView {
    NSInteger number = [_textView.text length];
    //设置一个提示输入字数的标签,frame根据各自需求设置
    UILabel *statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(*,*,*,*)];
    statusLabel.font = [UIFont systemFontOfSize:9];
    statusLabel.textAlignment = NSTextAlignmentLeft;
    statusLabel.backgroundColor = [UIColor whiteColor];
    //140减去当前已输入的数,显示还可以输入的数量
    statusLabel.text = [NSString stringWithFormat:@"%ld",(140-(long)number)];
    //添加到textView上
    [_textView addSubview:statusLabel];
}
//对于超出字数限制时,也可在这里做处理
-(void)textViewDidEndEditing:(UITextView *)textView{

}

/**
 *  添加备注
 */
- (void)changeInfo:(NSString *)info {

      NSInteger number = [_textView.text length];
        if (number > 200) {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"请不要超过200个字" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];
            [alert show];
        }
        //将其存起来,当结束回到controller时会立即刷新发送更改数据的请求给服务器,即可实现修改
        @"内部变量" = info;
        [****** ******:@"备注添加成功"];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值