美文网首页
iOS开发中遇到的小问题-----总结

iOS开发中遇到的小问题-----总结

作者: 云霄_云霄 | 来源:发表于2017-07-26 14:26 被阅读0次

    1、统一收键盘的方法

    [[[UIApplication sharedApplication] keyWindow] endEditing:YES];

    2、提示框

    BBAlertView *alert = [[BBAlertView alloc] initWithStyle:BBAlertViewStyleDefault

    Title:@"删除订单"

    message:@"是否删除订单,"

    customView:nil

    delegate:self

    cancelButtonTitle:L(@"取消")

    otherButtonTitles:L(@"确认")];

    [alert setCancelBlock:^{

    }];

    [alert setConfirmBlock:^{

    [self orderDidRemovePressDown:tempDic Index:index.section];

    }];

    [alert show];

    3、图片的自适应功能

    self.brandImage.contentMode = UIViewContentModeScaleAspectFit;

    4、cocoaPods清除缓存问题

    $ sudo rm -fr ~/.cocoapods/repos/master

    $ pod setup

    5、设置显示键盘的样式

    textView.keyboardType =UIKeyboardTypeDefault;

    //设置键盘右下角为完成(中文输入法下)

    textView.returnKeyType=UIReturnKeyDone;

    6、输出当前时间

    NSDateFormatter * dateFormatter=[[NSDateFormatter alloc]init];

    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];

    NSLog(@"当前毫秒时间1==%@",[dateFormatter stringFromDate:[NSDate date]]);

    7、显示两秒然后消失

    UILabel * lab=[[UILabel alloc]initWithFrame:CGRectMake(60,Main_Screen_Height-64-49-60, Main_Screen_Width-120, 50)];

    lab.backgroundColor=[UIColor grayColor];

    ViewRadius(lab, 20);

    lab.textAlignment=NSTextAlignmentCenter;

    lab.text=@"请先进行实名制验证";

    [self.view addSubview:lab];

    [UILabel animateWithDuration:2 animations:^{

    lab.alpha=0;

    }completion:^(BOOL finished) {

    [lab removeFromSuperview];

    }];

    8、设置placeholder属性的大小和颜色

    [_phoneFie setValue:[UIColor grayColor] forKeyPath:@"_placeholderLabel.textColor"];

    [_phoneFie setValue:[UIFont boldSystemFontOfSize:15] forKeyPath:@"_placeholderLabel.font"];

    _phoneFie.returnKeyType=UIReturnKeyDone;

    9、设置cell的交互完全不可以使用

    //[cellTwo setUserInteractionEnabled:NO];

    //设置cell不可以点击,但是上面的子控件可以交互

    cellTwo.selectionStyle=UITableViewCellSelectionStyleNone;

    10、将textField的placeholder 属性的字体向右边移动5

    _field.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10*Width_375, _field.frame.size.height)];

    _field.leftViewMode = UITextFieldViewModeAlways;

    11、开新线程使按钮上的时间变化

    -(void)startTime{

    __block int timeout=60; //倒计时时间

    UIButton * btn=(UIButton *)[self.view viewWithTag:1000];

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);

    dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行

    dispatch_source_set_event_handler(_timer, ^{

    if(timeout<=0){

    dispatch_source_cancel(_timer);

    dispatch_async(dispatch_get_main_queue(), ^{

    [btn setTitle:@"发送验证码" forState:UIControlStateNormal];

    btn.enabled = YES;

    });

    }else{

    //  int minutes = timeout / 60;

    int miao = timeout % 60;

    if (miao==0) {

    miao = 60;

    }

    NSString *strTime = [NSString stringWithFormat:@"%.2d", miao];

    dispatch_async(dispatch_get_main_queue(), ^{

    [btn setTitle:[NSString stringWithFormat:@"剩余%@秒",strTime] forState:UIControlStateNormal];

    btn.enabled = NO;

    });

    timeout--;

    }

    });

    dispatch_resume(_timer);

    }

    12、隐藏TableView 中多余的行

    UIView * view=[[UIView alloc]initWithFrame:CGRectZero];

    [_tabelView setTableFooterView:view];

    13、UIView添加背景图片

    UIImage * image=[UIImage imageNamed:@"friend750"];

    headSeV.layer.contents=(id)image.CGImage;

    14、UITableView取消选中状态

    [tableView deselectRowAtIndexPath:indexPath animated:YES];// 取消选中

    15、带属性的字符串

    NSFontAttributeName  字体

    NSParagraphStyleAttributeName  段落格式

    NSForegroundColorAttributeName  字体颜色

    NSBackgroundColorAttributeName  背景颜色

    NSStrikethroughStyleAttributeName 删除线格式

    NSUnderlineStyleAttributeName      下划线格式

    NSStrokeColorAttributeName        删除线颜色

    NSStrokeWidthAttributeName 删除线宽度

    NSShadowAttributeName  阴影

    1.  使用实例

    UILabel *testLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 320, 30)];

    testLabel.backgroundColor = [UIColor lightGrayColor];

    testLabel.textAlignment = NSTextAlignmentCenter;

    NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:@"今天天气不错呀"];

    [AttributedStr addAttribute:NSFontAttributeName

    value:[UIFont systemFontOfSize:16.0]

    range:NSMakeRange(2, 2)];

    [AttributedStr addAttribute:NSForegroundColorAttributeName

    value:[UIColor redColor]

    range:NSMakeRange(2, 2)];

    testLabel.attributedText = AttributedStr;

    [self.view addSubview:testLabel];

    16、加大按钮的点击范围

    把UIButton的frame 设置的大一些,然后给UIButton设置一个小些的图片

    [tmpBtn setImageEdgeInsets:UIEdgeInsetsMake(5, 5, 5, 5)];

    // 注意这里不能用setBackgroundImage

    [tmpBtn setImage:[UIImage imageNamed:@"testBtnImage"] forState:UIControlStateNormal];

    17、//避免self的强引用

    __weak ViewController *weakSelf = self;

    18、//类别的创建

    command +n ——>Objective-C File———>(File Type  选择是类别还是扩展)———>(Class  选择为哪个控件写类别)

    19、修改UITableview 滚动条颜色的方法

    self.tableView.indicatorStyle=UIScrollViewIndicatorStyleWhite;

    20、利用UIWebView显示pdf文件

    webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];

    [webView setDelegate:self];

    [webView setScalesPageToFit:YES];

    [webViewsetAutoresizingMask:UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleHeight];

    [webView setAllowsInlineMediaPlayback:YES];

    [self.view addSubview:webView];

    NSString *pdfPath = [[NSBundle mainBundle]pathForResource:@"ojc" ofType:@"pdf"];

    NSURL *url = [NSURLfileURLWithPath:pdfPath];

    NSURLRequest *request = [NSURLRequestrequestWithURL:url

    cachePolicy:NSURLRequestUseProtocolCachePolicy

    timeoutInterval:5];

    [webView loadRequest:request];

    21、将plist文件中的数据赋给数组

    NSString *thePath = [[NSBundle mainBundle]pathForResource:@"States" ofType:@"plist"];

    NSArray *array = [NSArrayarrayWithContentsOfFile:thePath];

    22、隐藏状态栏

    [[UIApplication shareApplication]setStatusBarHidden: YES animated:NO];

    23、给navigation  Bar  设置title颜色

    UIColor *whiteColor = [UIColor whiteColor];

    NSDictionary *dic = [NSDictionary dictionaryWithObject:whiteColor forKey:NSForegroundColorAttributeName];

    [self.navigationController.navigationBar setTitleTextAttributes:dic];

    24、使用AirDrop 进行分享

    NSArray *array = @[@"test1", @"test2"];

    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:array applicationActivities:nil];

    [self presentViewController:activityVC animated:YES

    completion:^{

    NSLog(@"Air");

    }];

    25、把tableview里面Cell的小对勾的颜色改成别的颜色

    _mTableView.tintColor = [UIColor redColor];

    26、UITableView去掉分割线

    _tableView.separatorStyle = NO;

    27、正则判断手机号码地址格式

    - (BOOL)isMobileNumber:(NSString *)mobileNum {

    //    电信号段:133/153/180/181/189/177

    //    联通号段:130/131/132/155/156/185/186/145/176

    //    移动号段:134/135/136/137/138/139/150/151/152/157/158/159/182/183/184/187/188/147/178

    //    虚拟运营商:170

    NSString *MOBILE = @"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|7[06-8])\\d{8}$";

    NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];

    return [regextestmobile evaluateWithObject:mobileNum];

    }

    28、控制交易密码位数

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

    if (textField.text.length >=6){

    [MBProgressHUD showMessage:@"密码为6位" afterDelay:1.8];

    return NO;

    }

    return YES;

    }

    29、判断是不是空

    if ([real_name isKindOfClass:[NSNull class]] ) {

    return NO;}

    30、点击号码拨打电话

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://400966220"]];

    31、控制UITabbar的选择哪一个

    [self.tabBarController setSelectedIndex:1];

    32、获取当前App的版本号

    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];

    CFShow(infoDictionary);

    // app名称

    NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"];

    // app版本

    NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];

    // app build版本

    NSString *app_build = [infoDictionary objectForKey:@"CFBundleVersion"];

    33、苹果app权限NSPhotoLibraryUsageDescriptionApp需要您的同意,才能访问相册NSCameraUsageDescriptionApp需要您的同意,才能访问相机NSMicrophoneUsageDescriptionApp需要您的同意,才能访问麦克风NSLocationUsageDescriptionApp需要您的同意,才能访问位置NSLocationWhenInUseUsageDescriptionApp需要您的同意,才能在使用期间访问位置NSLocationAlwaysUsageDescriptionApp需要您的同意,才能始终访问位置NSCalendarsUsageDescriptionApp需要您的同意,才能访问日历NSRemindersUsageDescriptionApp需要您的同意,才能访问提醒事项NSMotionUsageDescriptionApp需要您的同意,才能访问运动与健身NSHealthUpdateUsageDescriptionApp需要您的同意,才能访问健康更新NSHealthShareUsageDescriptionApp需要您的同意,才能访问健康分享NSBluetoothPeripheralUsageDescriptionApp需要您的同意,才能访问蓝牙NSAppleMusicUsageDescriptionApp需要您的同意,才能访问媒体资料库

    34、控件设置边框

    _describText.layer.borderColor = [[UIColor colorWithRed:215.0 / 255.0 green:215.0 / 255.0 blue:215.0 / 255.0 alpha:1] CGColor];

    _describText.layer.borderWidth = 1.0;

    _describText.layer.cornerRadius = 4.0;

    _describText.clipsToBounds = YES;

    35、//隐藏电池条的方法

    -(BOOL)prefersStatusBarHidden{

    return YES;

    }

    36、延时操作

    [NSThread sleepForTimeInterval:2];

    方法二:

    [self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.5];

    37、系统风火轮:

    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; //隐藏

    38、//didSelectRowAtIndexPath:方法里面找到当前的Cell

    AssessMentCell * cell = [tableView cellForRowAtIndexPath:indexPath];

    39、navigation上返回按钮的颜色以及返回按钮后面文字去掉

    //返回按钮后边文字去掉

    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)

    forBarMetrics:UIBarMetricsDefault];

    //设置左上角返回按钮的颜色

    self.navigationController.navigationBar.tintColor = UIColorFromRGB(0x666666);

    40、lineBreakMode //设置文字过长时的显示格式

    label.lineBreakMode = NSLineBreakByCharWrapping;以字符为显示单位显

    示,后面部分省略不显示。

    label.lineBreakMode = NSLineBreakByClipping;剪切与文本宽度相同的内

    容长度,后半部分被删除。

    label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字

    以……方式省略,显示尾部文字内容。

    label.lineBreakMode = NSLineBreakByTruncatingMiddle;中间的内容

    以……方式省略,显示头尾的文字内容。

    label.lineBreakMode = NSLineBreakByTruncatingTail;结尾部分的内容

    以……方式省略,显示头的文字内容。

    label.lineBreakMode = NSLineBreakByWordWrapping;以单词为显示单位显

    示,后面部分省略不显示。

    相关文章

      网友评论

          本文标题:iOS开发中遇到的小问题-----总结

          本文链接:https://www.haomeiwen.com/subject/jgankxtx.html