zoukankan      html  css  js  c++  java
  • xcode -饼状进度条

    界面搭建

    创建一个画饼状的类  eatView 集成UIView

    #import "eatView.h"
    
    @implementation eatView
    
    
    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    - (void)drawRect:(CGRect)rect {
        //创建一个园的风格数组
        NSArray * arr = @[@10,@10,@10,@10,@10,@10,@10,@10,@10,@10];
        
        //计算园的中心点
        CGPoint center = CGPointMake(rect.size.width * 0.5, rect.size.height * 0.5);
        //园的半径
        CGFloat radius = rect.size.width * 0.5 ;
        //开始位置
        CGFloat startA = 0;
        //结束位置
        CGFloat endA = 0;
        CGFloat angle = 0;
        //设置uiView的背景颜色
        self.backgroundColor=[UIColor clearColor];
        //遍历园等分的数组
        for (NSNumber *num in arr) {
            //计算开始位置
            startA = endA;
            //计算弧度
            angle = num.intValue / 100.0 * M_PI *2;
            //结束位置
            endA =startA + angle;
            //创建画笔
            UIBezierPath * path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startA endAngle:endA clockwise:YES];
            //画一条连接中心的线
            [path addLineToPoint:center];
            //设置随机颜色
            [[self randomColor]set];
            [path fill];
        }
        //创建一个定时器
        CADisplayLink * link =[CADisplayLink displayLinkWithTarget:self selector:@selector(click)];
        //加入主运行时
        [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
        //创建一个定时器
    //    [NSTimer scheduledTimerWithTimeInterval:1/50.0 target:self selector:@selector(click) userInfo:nil repeats:YES];
    }
    /**
     生产随机颜色
     */
    - (UIColor *)randomColor{
        return [UIColor colorWithRed:arc4random_uniform(256)/255.0 green:arc4random_uniform(256)/255.0 blue:arc4random_uniform(256)/255.0 alpha:1];
    }
    /**
     重绘图行
     */
    -(void)click{
        [self setNeedsDisplay];
    }
    
    @end
    View Code

    脱线 一根UITextField 另一根UIView

    @property (weak, nonatomic) IBOutlet UITextField *textNum;

    @property (weak, nonatomic) IBOutlet UIView *beginView;

    拖线 UIButton 点击方法  - (IBAction)beginGoBtn:(id)sender

    #import "ViewController.h"
    
    #import "eatView.h"
    
    @interface ViewController ()
    @property (weak, nonatomic) IBOutlet UITextField *textNum;
    @property (weak, nonatomic) IBOutlet UIView *beginView;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
     
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    - (IBAction)beginGoBtn:(id)sender {
        //释放加载过得UIview 不然又内存问题
        for (UIView * vol in self.beginView.subviews) {
            [vol removeFromSuperview];
        }
    //关闭键盘 [self.view endEditing:YES]; int count=self.textNum.text.intValue; for (int i=0; i<count; i++) { eatView * eatV = [[eatView alloc]init]; // 按钮尺寸 CGFloat optionW = 50; CGFloat optionH = 50; // 按钮之间的间距 CGFloat margin = 5; // 控制器view的宽度 CGFloat viewW = self.beginView.frame.size.width; // 总列数 int totalColumns = 6; // 最左边的间距 = 0.5 * (控制器view的宽度 - 总列数 * 按钮宽度 - (总列数 - 1) * 按钮之间的间距) CGFloat leftMargin = (viewW - totalColumns * optionW - margin * (totalColumns - 1)) * 0.5; int col = i % totalColumns; // 按钮的x = 最左边的间距 + 列号 * (按钮宽度 + 按钮之间的间距) CGFloat optionX = leftMargin + col * (optionW + margin); int row = i / totalColumns; // 按钮的y = 行号 * (按钮高度 + 按钮之间的间距) CGFloat optionY = row * (optionH + margin); eatV.frame = CGRectMake(optionX, optionY, optionW, optionH); [self.beginView addSubview:eatV]; } } @end

    效果图:

  • 相关阅读:
    数据库面试题
    数据库面试题
    DevExpress GridView 鼠标悬停颜色追踪(行或单元格)
    DevExpress GridView 鼠标悬停颜色追踪(行或单元格)
    2015最新最全最详细的配置win8.1开启IIS和ASP
    2015最新最全最详细的配置win8.1开启IIS和ASP
    打开IIS管理器命令cmd
    打开IIS管理器命令cmd
    C#在方法或属性中使用sealed时的操作与原理
    C#在方法或属性中使用sealed时的操作与原理
  • 原文地址:https://www.cnblogs.com/fleas/p/5618519.html
Copyright © 2011-2022 走看看