美文网首页
iOS 学习笔记

iOS 学习笔记

作者: 遠遊旳遊子 | 来源:发表于2018-08-13 19:59 被阅读0次
    1、设置屏幕宽度的高度
    #define screenW [UIScreen mainScreen].bounds.size.width  //屏幕宽度
    #define screenH [UIScreen mainScreen].bounds.size.height  //屏幕高度
    
    2、设置阴影(文本)
    lable.shadowColor = [UIColor redColor];  // 颜色
    lable.shadowOffset = CGSizeMake(-10, 10);  // 位置
    
    3、设置对齐方式
    lable.textAlignment = NSTextAlignmentCenter;  //    对齐方式
    [lable sizeToFit];  // 窗口自动适应文本
    
    4、透明度(1为不透明)
    button.alpha = 0.5;  // 按键透明
    button.titleLabel.alpha = 0.5;  // 标题透明
    
    5、边框设置
    button.layer.borderWidth = 2;  // 边框厚度
    button.layer.borderColor = [UIColor redColor].CGColor  // 边框颜色button.layer.cornerRadius = 10;  (20为圆形)  // 边框圆角
    
    6、图片设置圆角
    UIImageView * imageView = [[UIImageView alloc] init];
    CALayer * corner = [imageView layer];
    [corner setMasksToBounds:YES];
    [corner setCornerRadius:10.0];
    
    7、imageView动画
    // 设置动画的图片数组,用可变数组来存储图片。
    NSArray * imageArr = [[NSArray alloc] init];
    // 动画的图片数组:
    imageView.animationImages = imageArr;
    //动画的次数
    imageView.animationRepeatCount = 5;
    // 动画的持续时间
    imageView.animationDuration = 1.5;
    // 开始动画
    [imageView startAnimating];
    
    8、使能
    button.enabled = NO;  // 控 件 的 使 能
    button.userInteractionEnabled = YES;  // 用户交互使能
    
    9、interface的属性

    .m文件中的是私有拓展,在其他类中不可调用
    .h文件中的是公有拓展,在其他类中可调用

    10、获取手势所在的控件
    UIView * view = [tap view];
    
    11、文本字体加粗
    [UIFont boldSystemFontOfSize:17];
    
    12、super
    - (void)viewDidLoad {
        [super viewDidLoad];  // 调用父类
    }
    
    13、自定义颜色
    [UIColor colorWithRed:236.0/255 green:127.0/255 blue:56.0/255 alpha:1];
    
    14、单元格右边视图复用
    cell.accessoryType = UITableViewCellAccessoryNone;
    cell.accessoryView = nil;
    
    15、导航栏跳转时隐藏标签栏
    self.hidesBottomBarWhenPushed = YES;
    
    16、改变状态栏字体颜色
    • info.plist中添加一个字段:view controller -base status bar设置为NO
    • [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
    17、在app中加载网页地址
    • 添加头文件: #import <WebKit/WebKit.h>
    • 添加成员变量:WKWebView * webView;
    // 初始化webView 的配置
    WKWebViewConfiguration * configuration = [[WKWebViewConfiguration alloc] init];
    webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration];
    // 将webView 的大小设置为屏幕的大小
    webView.frame = CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.height-64);
    // 开启做滑动退回
    webView.allowsBackForwardNavigationGestures = YES;
    // 使用代理
    webView.navigationDelegate = self;
    webView.UIDelegate = self;
    // 如果需要加入JS 交互需要使用的是WKUIdelegate
    [self.view addSubview:webView];
    // 设置加载链接,也就是需要加载的web 地址
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://baidu.com"]]];
    
    18、添加导航栏、标签栏后出现显示怪异问题
    self.navigationController.navigationBar.translucent = NO;
    self.tabBarController.tabBar.translucent = NO;
    
    self.automaticallyAdjustsScrollViewInsets = NO;
    
    scrollView.contentSize // 位置设定错误,超出范围
    
    19、计时器
    NSTimer * timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updataTimer) userInfo:nil repeats:YES];
    [self startTimer];  // 开始计时
    [timer invalidate];  // 结束计时
    
    20、偏移(负为偏移,正为压缩)
    // UIEdgeInsetsMake(上, 左, 下, 右)
    button.titleEdgeInsets = UIEdgeInsetsMake(-30, 0, 0, -30);
    button.imageEdgeInsets = UIEdgeInsetsMake(0, -30, -30, 0);
    
    21、UIImagePickerController照片控制器
    22、系统提示框
    alert.alertViewStyle = UIAlertViewStyleSecureTextInput;  // 密码
    alert.alertViewStyle = UIAlertViewStylePlainTextInput;  // 文本输入
    alert.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;  // 账号和密码
    
    23、高度自适应
    // boundingRectWithSize计算给定文本字符串所占的区域
    // 返回值是一个x,y = 0的CGRect,w,h是计算好的宽高
    // 注意:size(100000,100000)这是计算最适合的单行尺寸,size(120,10000)这是计算出宽度为120的最适合的高度
    // 如果要计算多行的准确高度,需要传入NSStringDrawingUsesLineFragmentOrigin选项
    // fontAttributesDict用于指定字体的相关属性的字典,UIKit框架中的第一个头文件中可以找到
    // context: nil
    NSDictionary *fontAttributesDict = @{NSFontAttributeName:[UIFont systemFontOfSize:17]};
    CGRect frame = [model.content boundingRectWithSize:CGSizeMake(165, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:fontAttributes context:nil];
    
    // 调整文本的高度
    CGRect frame = label.frame;
    frame.size.height = computeFrame.size.height;
    label.frame = frame;
    
    24、代码片段—可修改模式

    <#参数#>
    例如:@property (nonatomic, retain) <#type#> <#name#>;

    25、单元格选择后不会出现选中的灰色
    // 选择后不会出现灰色选择项
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    
    UIView * view = [[UIView alloc] init];
    view.backgroundColor = [UIColor clearColor];
    cell.backgroundView = view;
    
    26、获取单元格数据
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        NSLog(@"%@",  cell.detailTextLabel.text);
    }
    
    27、隐藏状态栏
    - (BOOL)prefersStatusBarHidden {
        return YES;
    }
    
    28、代码块-block
    • A页面 .h 文件
    #import <UIKit/UIKit.h>
    #import "categoryModel.h"
    
    typedef void (^categoriesViewCellBlock)(NSString * foodKind, NSInteger foodId);
    @interface CategoriesViewCell : UITableViewCell
    @property (nonatomic, copy) categoriesViewCellBlock block;
    
    - (void)setBlock:(categoriesViewCellBlock)block;
    
    @end
    
    • A页面 .m 文件
    - (void)setBlock:(categoriesViewCellBlock)block {
        _block = block;
    }
    
    /** 按键点击*/
    - (void)buttonClick:(UIButton *)button {
        if (button.tag > 4000) {
            NSInteger num = button.tag - 4000;
            _block (@"restaurant", num);
        }
    }
    
    • B页面 .m 文件
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
        static NSString * CELLID = @"KKKKK";
        CategoriesViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CELLID];
        if (cell == nil) {
            cell = [[CategoriesViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CELLID FoodKind:_foodKind KindCount:_dataArr.count];
            
            [cell setBlock:^(NSString *foodKind, NSInteger foodId) {
            FoodFormViewController * foodForm = [[FoodFormViewController alloc] init];
            foodForm.foodKind = foodKind;
            categoryModel * model = _dataArr[foodId];
            foodForm.model = model;
            }];
          }    
        return cell;
    
    }
    
    29、tableView滚动到某一行
    // 发送消息后,视图自动拖动到最下面
    NSIndexPath * indexPath = [NSIndexPath indexPathForRow:_dataArr.count-1 inSection:0];
    [_tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];
    
    30、代码块循环引用怪圈(警告)
    // capturing 'self' strongly in this block is likely to lead to a retain cycle
    _adView.callBack = ^(NSInteger index,NSString * imageURL) {
        [self welcomeImageClickWithIndex:index];
    };
    
    • 要改成
    // 在非  ARC 中
    MainViewController * mainVC = [[MainViewController alloc] init];
    __weak typeof (MainViewController) * weakVC = mainVC;
    _adView.callBack = ^(NSInteger index,NSString * imageURL) {
      [weakVC welcomeImageClickWithIndex:index];
    };
    
    // 在  ARC 中
    __block MainViewController * mainVC = self;
    _adView.callBack = ^(NSInteger index,NSString * imageURL) {
        [mainVC welcomeImageClickWithIndex:index];
    };
    
    • arc 最常用
      __weak typeof (self) weakSelf = self;
    31、window
    //设置Window为主窗口并显示出来
    [self.window makeKeyAndVisible];
    
    32、cell 加载 xib
    TableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CELLID];
    if (!cell) {
        UINib * nib = [UINib nibWithNibName:@"TableViewCell" bundle:nil];
        [tableView registerNib:nib forCellReuseIdentifier:CELLID];
        cell = [tableView dequeueReusableCellWithIdentifier:CELLID];
    }
    
    33、tableView顶部被navigationba盖住的问题

    设置 self.automaticallyAdjustsScrollViewInsets = NO;
    或者self.automaticallyAdjustsScrollViewInsets = YES;

    相关文章

      网友评论

          本文标题:iOS 学习笔记

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