Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UITableViewCell生成电话号码样式_Iphone_Ios_Uitableview - Fatal编程技术网

Iphone UITableViewCell生成电话号码样式

Iphone UITableViewCell生成电话号码样式,iphone,ios,uitableview,Iphone,Ios,Uitableview,在iPhone联系人表视图中,有一个称为“phone”的手机,当用户编辑此手机号码时,会变成这样:(251)575-3621。如何制作此单元格类型 谢谢.-(BOOL)textField:(UITextField*)textField - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { N

在iPhone联系人表视图中,有一个称为“phone”的手机,当用户编辑此手机号码时,会变成这样:(251)575-3621。如何制作此单元格类型

谢谢.

-(BOOL)textField:(UITextField*)textField
- (BOOL)textField:(UITextField *)textField 
shouldChangeCharactersInRange:(NSRange)range 
replacementString:(NSString *)string {


NSUInteger currentLength = textField.text.length;


NSCharacterSet *numbers = [NSCharacterSet decimalDigitCharacterSet];


if (range.length == 1) {
    return YES;
}


if ([numbers characterIsMember:[string characterAtIndex:0]]) {


    if ( currentLength == 3 ) 
    {

        if (range.length != 1) 
        {

            NSString *firstThreeDigits = [textField.text substringWithRange:NSMakeRange(0, 3)];

            NSString *updatedText;

            if ([string isEqualToString:@"-"]) 
            {
                updatedText = [NSString stringWithFormat:@"%@",firstThreeDigits];
            }

            else 
            {
                updatedText = [NSString stringWithFormat:@"%@-",firstThreeDigits];
            }

            [textField setText:updatedText];
        }           
    }

    else if ( currentLength > 3 && currentLength < 8 ) 
    {

        if ( range.length != 1 ) 
        {

            NSString *firstThree = [textField.text substringWithRange:NSMakeRange(0, 3)];
            NSString *dash = [textField.text substringWithRange:NSMakeRange(3, 1)];

            NSUInteger newLenght = range.location - 4;

            NSString *nextDigits = [textField.text substringWithRange:NSMakeRange(4, newLenght)];

            NSString *updatedText = [NSString stringWithFormat:@"%@%@%@",firstThree,dash,nextDigits];

            [textField setText:updatedText];

        }

    }

    else if ( currentLength == 8 ) 
    {

        if ( range.length != 1 ) 
        {
            NSString *areaCode = [textField.text substringWithRange:NSMakeRange(0, 3)];

            NSString *firstThree = [textField.text substringWithRange:NSMakeRange(4, 3)];

            NSString *nextDigit = [textField.text substringWithRange:NSMakeRange(7, 1)];

            [textField setText:[NSString stringWithFormat:@"(%@) %@-%@",areaCode,firstThree,nextDigit]];
        }

    }
}

else {
    return NO;
}

return YES;
}
应更改字符范围:(NSRange)范围 替换字符串:(NSString*)字符串{ NSU整数currentLength=textField.text.length; NSCharacterSet*数字=[NSCharacterSet小数位数字符集]; 如果(range.length==1){ 返回YES; } if([numbers characteristember:[字符串字符索引:0]]){ 如果(currentLength==3) { 如果(range.length!=1) { NSString*firstThreeDigits=[textField.text substringWithRange:NSMakeRange(0,3)]; NSString*updateText; if([string IsequalString:@“-”]) { UpdateText=[NSString stringWithFormat:@“%@”,前三位数字]; } 其他的 { updatedText=[NSString stringWithFormat:@“%@-”,前三位数字]; } [textField setText:updateText]; } } 否则如果(currentLength>3&¤tLength<8) { 如果(range.length!=1) { NSString*firstThree=[textField.text substringWithRange:NSMakeRange(0,3)]; NSString*dash=[textField.text substringWithRange:NSMakeRange(3,1)]; NSU整数newLenght=range.location-4; NSString*nextDigits=[textField.text substringWithRange:NSMakeRange(4,newLenght)]; NSString*updatedText=[NSString stringWithFormat:@“%@%@@”,前三个,破折号,下一个数字]; [textField setText:updateText]; } } else if(currentLength==8) { 如果(range.length!=1) { NSString*areaCode=[textField.text substringWithRange:NSMakeRange(0,3)]; NSString*firstThree=[textField.text substringWithRange:NSMakeRange(4,3)]; NSString*nextDigit=[textField.text substringWithRange:NSMakeRange(7,1)]; [textField setText:[NSString stringWithFormat:@“(@)%@-%@”,区号,前三个,下一个数字]]; } } } 否则{ 返回否; } 返回YES; }
cell.textlab.text=[NSString stringWithFormat:@“(%03d)%03d-%04d”,第1部分、第2部分、第3部分]