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的纯对象
      • 内部会提供一些属性存放数据
  • 相关阅读:
    HDOJ1003 MaxSum【逆推】
    HDOJ1698 Just a hook【线段树成段更新lazy标志】武科大ACM暑期集训队选拔赛4题
    HDOJ1102 Constructing Roads【最小生成树】武科大ACM暑期集训队选拔赛1题
    POJ2828 Buy Tickets【线段树,逆序遍历】
    HDOJ1215 ( 七夕节 )【居然还可以这么解~】
    HDOJ1089HDOJ1096【格式练习】
    HDOJ1233 ( 还是畅通工程 ) 【最小生成树,kruscal】
    HDOJ1035 ( Robot Motion ) 【递归】
    POJ3468 A Simple Problem with Integers【线段树 成段更新+求和 lazy标志】
    HDOJ1216 Assistance Required【打表】武科大ACM暑期集训队选拔赛7题
  • 原文地址:https://www.cnblogs.com/turnips/p/5672434.html
Copyright © 2011-2022 走看看