zoukankan      html  css  js  c++  java
  • IOS开发UI基础学习-------总结

    • 什么叫控件?

      • 屏幕上所有UI元素都叫做控件(也有叫做视图、组件)
    • 控件的共同属性

      • 尺寸
      • 位置
      • 背景色
      • ...
    • 苹果将控件的共同属性都抽取到父类UIView中

      • 所有控件最终都继承自UIView

    父子控件

    • 每个控件都是一个容器,都可以容纳其他控件
    • 内部的小控件是大控件的子控件

    常用属性

    • 获得自己的父控件对象

      @property(nonatomic,retain)UIView *superview;
      
    • 获得自己的所有子控件对象 -数组元素的顺序决定了子控件的显示层级

      @property(nonatomic,readonly,copy)NSArray *subview;
      
    • -(void)addSubview:(UIView *)view;

      • 添加一个子控件view
      • 例:- (IBAction)buttonClick { UISwitch *s = [[UISwitch alloc]init]; [self.view addSubview:s]; }
    • (void)removeFormSuperview;

      • 从父控件中移除
    • -(UIView *)viewWithTag:(NSInteger)tag;

      • 根据一个tag标识找出对应的控件(一般都是子控件)
    • -(UIView *)viewWithTag:(NSInteger)tag;

      • 根据一个tag标识找出对应的控件(一般都是子控件)
    //CGRect是一个结构体,有四个小属性,位置坐标和大小
    //控件矩形框在父控件中得位置和尺寸(以父控件的左上角为坐标原点)
    //向右为x正方向,纵向向下为y轴正方向。x,y分别表示距矩形边框的距离
    - @property(nonatomic)CGRect frame;
    
    - @property(nonatomic)CGRect bounds;
    //控件矩形框的位置和尺寸(以自己左上角为坐标原点,所以bounds的x、y一般为0)
    
    - @proerty(nonatomic)CGPoint center;
    //控件中点的位置(以父控件的左上角为坐标原点)


    注意点

    • 在按钮设置时候,type属性初始情况下是system状态,此时在按钮点击时候,会变灰。
    • 当自己定义按钮高亮、不可用等状态的时候,需要将type属性设置为Custom(自定义)

    显示指示器

    • 隐藏控件的几种方法
    self.addBtn.hidden = YES;  设置为隐藏
    
    self.addBtn.alpha = 0;  设置透明度,默认是1.0(100%不透明)
    
    [self.addBtn removeFormSuper];  直接删除
    

    SEL类型其实就是对方法的包装 @selector(方法名)

    实现计时器的方法

    • 方法1:performSelector
      [self performSelector:@selector(hideHUD) withObject:nil afterDelay:2.0]
      参数一:SEL方法
      参数二:参数
      参数三:?s延迟
      
    • 方法2:GCD
    • dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

        self.hud.alpha = 0.0;
      

      });

    • 方法3:NSTimer(当repeats=YES时候,则每隔1.5s调用一次方法)

    • [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(*) userInfo:nil repeats:NO];

    HUD

    • 其他说法:指示器、遮盖、蒙板
    • 半透明的HUD做法:
      • 背景色设置为半透明颜色

    常见问题

    • 项目里面的某个.m文件无法使用 -:Build Phases -> Complie Sources

    • 项目里面的某个资源文件(比如plist、音频等)无法使用

      • 检查:Build Phases -> Copy Bundle Resource
      • 什么是模型?
      • 专门用来存放数据的对象
      • 一般都是一些直接集成NSObject的纯对象
      • 内部会提供一些属性存放数据
  • 相关阅读:
    JavaScript Patterns 5.7 Object Constants
    JavaScript Patterns 5.6 Static Members
    JavaScript Patterns 5.5 Sandbox Pattern
    JavaScript Patterns 5.4 Module Pattern
    JavaScript Patterns 5.3 Private Properties and Methods
    JavaScript Patterns 5.2 Declaring Dependencies
    JavaScript Patterns 5.1 Namespace Pattern
    JavaScript Patterns 4.10 Curry
    【Android】如何快速构建Android Demo
    【Android】如何实现ButterKnife
  • 原文地址:https://www.cnblogs.com/turnips/p/5672434.html
Copyright © 2011-2022 走看看