UI基础4 九宫格计算 HUD Plist文件 Bundle

九宫格计算思路

  • 利用控件索引index计算出控件所在的行号和列号
  • 利用列号计算控件的x值
  • 利用行号计算控件的y值

HUD

  • 其他说法:指示器、遮盖、蒙版
  • 半透明HUD方法
    • 背景色设置半透明颜色

定时任务

  • 方法1:performSelector
[self performSelector:@selector(hideHUD) withObject:nil afterDelay:1.0];


  • 方法2:GCD
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            self.hud.alpha = 0.0;
        });



  • 方法3:NSTimer

[NSTimer scheduledTimerWithTimeInterval:1.0 target:self
selector:@selector(hideHUD) userInfo:nil repeats:NO];

Plist文件

  • 直接将数据写在代码里面,不是一种合理的做法。如果数据经常修改,就要经常找到对应的源代码进行修改,造成代码扩展性低
  • 因此,可以考虑将经常变的数据放在文件中进行存储,程序启动后从文件中读取最新的数据。如果要变动数据,直接修改数据文件即可,不用修改代码
  • 一般可以使用属性列表文件存储NSArray或者NSDictionary之类的数据,这种“属性列表文件”的扩展名是plist,因此也称为“plist文件”

Bundle 获取文件路径

// 数据

    // 加载plist文件
    // 凡是参数名为File的,传递的都是全路径

    // 一个NSbundle对象对应一个资源包(图片、音频、视频、plist文件等)
    // NSbundle的作用:可以用来获得文件的全路径,用来访问与之对应的资源包内的文件
    // 项目中添加的资源都会被添加到主资源包中
    // [NSBundle mainBundle]关联的就是项目的竹资源包

    NSBundle *bundle = [NSBundle mainBundle];

    // 利用mainBundle获得plist文件在主资源包中的全路径


    NSString *file = [bundle pathForResource:@"shops" ofType:@"plist"];
 //   NSString *file = [bundle pathForResource:@"shops.plist" ofType:nil]; // 两种写法都可以


    self.shops = [NSArray arrayWithContentsOfFile:file];

常见问题

  • 项目里面的某个.m文件无法使用
    • 检查: Build Phases-> Compile Sources
  • 项目里面的某个资源文件(比如plist、音频等)无法使用
    • 检查:Build Phases - > Copy Bundle Resources

你可能感兴趣的:(UI基础4 九宫格计算 HUD Plist文件 Bundle)