zoukankan      html  css  js  c++  java
  • UI控件tag属性和魔法数字的处理

    说明:tag属性有很大的用处,它就好像每个UI控件的id,当多个按钮指向同一个监听方法时,可以给方法带参数UIButton,然后根据不同的tag值

    来判断执行哪个按钮的监听事件;

    - (IBAction)up:(UIButton *)sender // 该方法有四个btn指向,tag值是下边的,即可根据不同tag值执行相应的代码
    {
        //upMoveTag的tag是10
        //bottomMoveTag:11
        //leftMoveTag:12
        //rightMoveTag:13
        
        
        CGRect rect =  self.targetView.frame;
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.0];
        switch (sender.tag) {
            case 10:
                rect.origin.y -= Delat;
                break;
            case 11:
                rect.origin.y += Delat;
                break;
            case 12:
                rect.origin.x -= Delat;
                break;
            case 13:
                rect.origin.x += Delat;
                break;
                
        }
        
        self.targetView.frame = rect;
      
        [UIView commitAnimations];
        
    }

    魔法数字:上述代码中的tag值10,11,12,13没什么实际意义,只是用来区分不同的button的,直接写死,很不方便其他的程序员阅读;

      解决办法,将这四个值写成一个枚举

    // 枚举代替魔法数字,提高代码的可读性
    typedef enum{
        
        upMoveTag = 10,
        bottomMoveTag,
        leftMoveTag,
        rightMoveTag,
        
    } moveDirec;
    
    // 监听事件中的代码的tag值就不用写死了,还提高可读性
    CGRect rect =  self.targetView.frame;
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.0];
        switch (sender.tag) {
            case upMoveTag:
                rect.origin.y -= Delat;
                break;
            case bottomMoveTag:
                rect.origin.y += Delat;
                break;
            case leftMoveTag:
                rect.origin.x -= Delat;
                break;
            case rightMoveTag:
                rect.origin.x += Delat;
                break;
                
        }
  • 相关阅读:
    基于Kalman filter 的北斗卫星三维坐标后数据处理
    原子串口使用0D0A结尾作为结束字符
    GY90614 读取温度,修改辐射率,拟合曲线
    CRH PC11配置
    _I2C_SDA_READ 状态确定为输入
    read_byte
    SDA 右移赋值
    积极心态-刚入职的我们
    mysql基础知识点(复习一)
    java基础知识点(复习一)
  • 原文地址:https://www.cnblogs.com/cxbblog/p/3742113.html
Copyright © 2011-2022 走看看