• 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;
                
        }
  • 相关阅读:
    第一篇:GCD的使用
    第一篇:线程的安全
    内存问题
    第一篇:多线程的概念
    第一篇:NSOperation的概念
    存储问题
    第一篇:NSTread线程的创建
    第一篇:多线程使用
    遍历所有表,取每个表的MAXID更新到ID控制表
    <转载>SQL查询数据库各表所占空间
  • 原文地址:https://www.cnblogs.com/cxbblog/p/3742113.html
Copyright © 2020-2023  润新知