00y值的起点 ios_ios 组件通信值的回传 - CSDN
精华内容
参与话题
  • iOS-界面搭建鼻祖_九宫格算法

    千次阅读 2015-08-28 10:35:04
    搭建九宫格的步骤:明确每一块用的是什么view明确每个view之间的父子关系先尝试逐个逐个添加格子,最后考虑使用for循环加载app数据,根据数据长度创建对应个数的格子添加格子内部的子控件给格子内部的子控件装配数据...

    搭建九宫格的步骤:

    明确每一块用的是什么view

    明确每个view之间的父子关系

    先尝试逐个逐个添加格子,最后考虑使用for循环

    加载app数据,根据数据长度创建对应个数的格子

    添加格子内部的子控件

    给格子内部的子控件装配数据

    效果图:
    这里写图片描述

    代码:

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        //搭建界面-九宫格!!
    #define kAppViewH 80 //每个小视图高80
    #define kAppViewW 80 //每个小视图宽80
    #define kColCount 3 //每行视图数量一定,都是三个
    #define kStart 20   //适配屏幕,起点20
        CGFloat marginX = (self.view.bounds.size.width - kColCount * kAppViewW) / (kColCount + 1);//每一列的x值一定
        CGFloat marginY = 10;//每一行的Y值一定由行号决定
        for (int i=0; i<12; i++) {
            //行号
            int row = i/kColCount;
    
            //列号
            int col = i%kColCount;
    
            //x - 由列号决定
            CGFloat x = marginX + col * (kAppViewW + marginX);
    
            //y - 由行号决定
            CGFloat y = kStart + marginY + row * (kAppViewH + marginY);
    
            //CGFloat
            UIView *appView = [[UIView alloc]initWithFrame:CGRectMake(x, y, kAppViewW, kAppViewH)];
            appView.backgroundColor = [UIColor redColor];
            [self.view addSubview:appView];
        }
    
    }
    

    运行结果:
    这里写图片描述

    展开全文
  • IOS开发-画曲线画弧线画圆

    千次阅读 2016-05-19 21:30:50
    (1)导入QuartzCore框架 (2)自定义一个view,然后输入下面的代码:- (void)drawRect:(CGRect)rect { [self drawArc1]; }/** * 曲线 */ - (void)drawArc1 { //获取上下文 CGContextRef context = ...

    (1)导入QuartzCore框架
    (2)自定义一个view,然后输入下面的代码:

    - (void)drawRect:(CGRect)rect {
        [self drawArc1];
    }
    
    /**
     *  曲线
     */
    - (void)drawArc1
    {
        //获取上下文
        CGContextRef context = UIGraphicsGetCurrentContext();
    
        //设置起点
        CGContextMoveToPoint(context, 50, 50);
    
        //画曲线
        //参数解析
        //第一个参数是上下文,直接穿上面获取到的。
        //接下来两个参数cpx,cpy这两个是控制在哪一个点产生弧度
        //最后两个参数x,y是终点的位置
        //CGContextAddQuadCurveToPoint(<#CGContextRef  _Nullable c#>, <#CGFloat cpx#>, <#CGFloat cpy#>, <#CGFloat x#>, <#CGFloat y#>)
    
        CGContextAddQuadCurveToPoint(context, 150, 150, 200, 50);
    
        CGContextStrokePath(context);
    }

    效果如下,参照里面注释和图理解意思:
    这里写图片描述

    画曲线是下面两个函数,效果一直:

    /**
     *  画弧线
     */
    - (void)drawArc2
    {
        //设置路径
        UIBezierPath *path = [UIBezierPath bezierPath];
    
        //第一个参数是起点,是圆形的圆心
        //第二个参数是半径
        //第三个参数是起始弧度
        //第四个参数是结束弧度
        //第五个参数是传入yes是顺时针,no为顺时针,下面的另外一种实现方法的参数意思也是一致
        //path addArcWithCenter:<#(CGPoint)#> radius:<#(CGFloat)#> startAngle:<#(CGFloat)#> endAngle:<#(CGFloat)#> clockwise:<#(BOOL)#>
    
    
        [path addArcWithCenter:CGPointMake(150, 150) radius:100 startAngle:0 endAngle:M_PI_2 clockwise:NO];
    
        //渲染
        [path stroke];
    }
    /**
     *  画弧线
     */
    - (void)drawArc3
    {
        //获取上下文
        CGContextRef context = UIGraphicsGetCurrentContext();
    
        //画圆
        CGContextAddArc(context, 150, 150, 100, 0, M_PI_2, YES);
    
        //渲染
        CGContextStrokePath(context);
    }

    这里写图片描述

    如果要画圆就是上面的endAngle参数换成M_PI*2:

    [path addArcWithCenter:CGPointMake(150, 150) radius:100 startAngle:0 endAngle:M_PI*2 clockwise:NO];

    还有另外一种变相画圆形,就是换一个圆矩形然后在他的圆角参数设置成,宽高的一半就能变成一个圆形,代码如下:

    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(50, 50, 80, 80) cornerRadius:80/2];
    
    [path stroke];

    这样就是圆形了。
    下面画一个扇形:

    - (void)drawArcFill
    {
        //设置路径
        UIBezierPath *path = [UIBezierPath bezierPath];
    
        //第一个参数是起点,是圆形的圆心
        //第二个参数是半径
        //第三个参数是起始弧度
        //第四个参数是结束弧度
        //第五个参数是传入yes是顺时针,no为顺时针,下面的另外一种实现方法的参数意思也是一致
        //path addArcWithCenter:<#(CGPoint)#> radius:<#(CGFloat)#> startAngle:<#(CGFloat)#> endAngle:<#(CGFloat)#> clockwise:<#(BOOL)#>
    
    
        [path addArcWithCenter:CGPointMake(150, 150) radius:100 startAngle:0 endAngle:M_PI_2 clockwise:YES];
    
        [path addLineToPoint:CGPointMake(150, 150)];
    
        [path fill];
        //渲染
        //[path stroke];
    }

    效果如下:
    这里写图片描述

    展开全文
  • UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(100, 100) radius:30 startAngle:(0*M_PI) endAngle:1.5f*M_PI clockwise:YES]; path.lineWidth = 10; //设置颜色 ...


    一、先简单了解一下通过贝塞尔曲线画一个圆的基本概念,坐标系请参考下图。



    要画一个贝塞尔曲线要有几个基本的要素

    起始角度、结束角度、半径、是否按照顺时针方向

    贝塞尔曲线只是规划了一个Layer的路径,而不能真正的展示出来,所以要和CAShapeLayer搭配使用,请看例子:

        CAShapeLayer *layer = [CAShapeLayer new];
        layer.lineWidth = 10;
        //圆环的颜色
        layer.strokeColor = [UIColor redColor].CGColor;
        //背景填充色
        layer.fillColor = [UIColor clearColor].CGColor;
        //设置半径为10
        CGFloat radius = 100;
        //按照顺时针方向
        BOOL clockWise = true;
        //初始化一个路径
        UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:self.view.center radius:radius startAngle:(1.25*M_PI) endAngle:1.75f*M_PI clockwise:clockWise];
        layer.path = [path CGPath];
        [self.view.layer addSublayer:layer];
    左图代表从从1.25π到1.75π的顺时针的圆弧,半径为100,宽度为10;

    右图为clockWise设为false后的效果,路径变为逆时针


    ------------------------割-----------------------------------

    下面进行实战开发:

    目标效果如下


    第一步 创建一个圆环

    第二步 添加渐变颜色

    第三步添加进度末尾的小红点

    第四部进一步包装

    代码如下:


    第一步上面说过了,这里不做赘述


    第二步添加渐变色:

    渐变色讲解:

     iOS CAGradientLayer 实现渐变色


    下面是设置渐变色的圆环代码

       _lineWidth = 10.0f;
        
        CGFloat viewWidth = 200;
        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, viewWidth, viewWidth)];
        view.center = self.view.center;
        [self.view addSubview:view];
        _backView = view;
        
        CAShapeLayer *layer = [CAShapeLayer new];
        layer.lineWidth = 10;
        //圆环的颜色
        layer.strokeColor = [UIColor redColor].CGColor;
        //背景填充色
        layer.fillColor = [UIColor clearColor].CGColor;
        //指定线的边缘是圆的
        layer.lineCap = kCALineCapRound;
        //设置半径为10
        CGFloat radius = viewWidth/2.0f - layer.lineWidth/2.0f;
        //按照顺时针方向
        BOOL clockWise = true;
        //初始化一个路径
        UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(viewWidth/2.0f, viewWidth/2.0f) radius:radius startAngle:(-0.5f*M_PI) endAngle:1.5f*M_PI clockwise:clockWise];
        layer.path = [path CGPath];
        _layer = layer;
        
        //设置渐变颜色
        CAGradientLayer *gradientLayer =  [CAGradientLayer layer];
        gradientLayer.frame = view.bounds;
        [gradientLayer setColors:[NSArray arrayWithObjects:(id)[RGB(139, 48, 164) CGColor],(id)[RGB(61, 189, 255) CGColor],(id)[RGB(37, 182, 82) CGColor], nil]];
        gradientLayer.startPoint = CGPointMake(0, 0);
        gradientLayer.endPoint = CGPointMake(1, 1);
        [view.layer addSublayer:gradientLayer];
        [gradientLayer setMask:layer];

    第三步:添加终点位置的红点

    具体思路请查看:


      iOS 获取圆环终点位置的坐标方法 (UIBezierPath 终点位置)

    代码如下:

    -(void)addRedDot
    {
        _redDot = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
        _redDot.layer.cornerRadius = 10.0f;
        _redDot.backgroundColor = [UIColor redColor];
        _redDot.frame = [self getEndPointFrameWithProgress:0.8f];
        [_backView addSubview:_redDot];
    }


    //更新小点的位置
    -(CGRect)getEndPointFrameWithProgress:(float)progress
    {
        CGFloat angle = M_PI*2.0*progress;//将进度转换成弧度
        float radius = (_backView.bounds.size.width-_lineWidth)/2.0;//半径
        int index = (angle)/M_PI_2;//用户区分在第几象限内
        float needAngle = angle - index*M_PI_2;//用于计算正弦/余弦的角度
        float x = 0,y = 0;//用于保存_dotView的frame
        switch (index) {
            case 0:
                NSLog(@"第一象限");
                x = radius + sinf(needAngle)*radius;
                y = radius - cosf(needAngle)*radius;
                break;
            case 1:
                NSLog(@"第二象限");
                x = radius + cosf(needAngle)*radius;
                y = radius + sinf(needAngle)*radius;
                break;
            case 2:
                NSLog(@"第三象限");
                x = radius - sinf(needAngle)*radius;
                y = radius + cosf(needAngle)*radius;
                break;
            case 3:
                NSLog(@"第四象限");
                x = radius - cosf(needAngle)*radius;
                y = radius - sinf(needAngle)*radius;
                break;
                
            default:
                break;
        }
        //为了让圆圈的中心和圆环的中心重合
        x -= (_redDot.bounds.size.width/2.0f - _lineWidth/2.0f);
        y -= (_redDot.bounds.size.width/2.0f - _lineWidth/2.0f);
        //更新圆环的frame
        CGRect rect = _redDot.frame;
        rect.origin.x = x;
        rect.origin.y = y;
        return  rect;
    }


    经过这几步就可以得到想要的效果了,通过额外额修饰就可以得到一个通过圆环显示的进度指示器了;


    Demo如下

    ☞  Demo

    GitHub项目





    展开全文
  • 今天高考第二天 端午节的第二天!(〃ω〃) 之前Yama安利一个安卓特别好用的看书App –阅读 导入各种书源,这么多书简直...今天顺带安利下IOS的看书App,跟安卓(阅读)的那个是差不多的,也是通过导入各种丰富...

    今天高考第二天

    端午节的第二天!(〃ω〃)

    之前Yama安利一个安卓特别好用的看书App – 阅读

     

    导入各种书源,这么多书简直看不完呐

    尤其是前段时间网文发生了那些事,导致国内大的网文平台、论坛(比如潇湘、起点…)

    大面积的书都下架了,大平台那些稍微敏感(其实也算不上敏感)的书就完全看不到了!

    今天顺带安利下IOS的看书App,跟安卓(阅读)的那个是差不多的,也是通过导入各种丰富的书源!

    Iphone

    IOS端一款超多书源的看书神器,不怕你找不到书!

    IpadIOS端一款超多书源的看书神器,不怕你找不到书!

    通过Ipad看书,还是蛮方便的~也很舒服,有点类似看Kindle的感觉嗷~导入书源方法:复制以下书源地址,右上角 书源配置~导入剪切板中的信息~一键导入

    导入书源

    https://gitee.com/ift123/iFreeTimeBookConfigs

    https://github.com/wxdjs/iFreeTimebookConfigs

    https://gitee.com/heiji666/aiyue

    https://gitee.com/q7478729/books

    https://y154541000.github.io/BookConfig/

    https://gitee.com/superman1024/iFreeTimeBooks
    https://wxdjs.github.io/iFreeTimebookConfigs/

    https://jxd524.github.io/bookConfigs/

    IOS端一款超多书源的看书神器,不怕你找不到书!

    然后再左上角菜单栏书海无涯就能看到刚刚导入的众多书源~


    优势:

    各种自定义的配置。

    支持自定义界面,包括主题,配色,背景,字体,字间距,行距等等。支持各种细节的设置。

    支持自定义内容,热门小说,世界名著,文学作品,童话,女性频道,少儿教育,技术文档,论坛帖子等等。只要有书源,您想看什么就能看什么,从此内容由您自己定制。

    支持一键缓存。

    支持在线听书,也支持使用系统语音库离线听书。

    支持书籍信息备份。

    支持对内容进行过滤,替换。

    支持无障碍模式。

    提供丰富的功能,不管是简单使用,还是追求更个性化的操作。

    复制右侧链接跳转到AppStore苹果App) –  http://t.cn/R0rrXtj

     

     

    微信公众号【木头分享】,超多福利超多资源木头分享 

    展开全文
  • iOS7及以上版本有改动,UITabBar类添加了一个translucent属性,UINavigationBar类中的translucent属性也默认修改为YES。 也就是说默认使用了这两个bar之后,显示的是半透明的效果,能够模糊看到被bar遮盖的东西。 这...
  • iOS 获取屏幕某个区域的截图

    千次阅读 2016-11-21 18:17:03
    -(void)fullScreenshots{    UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];   ... UIGraphicsBeginImageContext(screenWindow.frame.size);//全屏截图,包括window
  • IOS 如何实现画虚线

    千次阅读 2015-08-17 16:37:02
    因为项目需要画虚线,起初想用图片重复叠加实现。搜罗了一圈还是封装一个UIView 代码如下 .h文件 ...@interface DashesLineView : UIView ...//虚线起点 @property(nonatomic)CGPoint endPoint;//虚线终点 @pro
  • ios view的frame和bounds之区别(位置和大小)

    万次阅读 多人点赞 2013-03-24 01:43:57
    学习ios开发有一段时间了,项目也做了两个了,今天看视频,突然发现view的frame和bound两个属性,发现bound怎么也想不明白,好像饶你了死胡同里,经过一番尝试和思考,终于弄明白bound的含义。PS:我承认我是一个很...
  • 将状态栏隐藏掉之后,页面上的tableView会自动向上滚20个像素 这是因为在iOS7.0之后,系统会自动调整scrollView的layout 和 contentInsets 。从而使其自动地适应iOS7之后那种整个屏幕都可以放入自定义控件的方法。...
  • 在处理直接操作时,设计关注点从UIViewController 转移到UIView。 视图,更准确地说是UIResponder ,构成了直接操作开发的核心, 通过定制从UIResponder类派生的方法可创建基于触摸的界面。 下面的代码构建...
  • ios 贝塞尔曲线轨迹更加平滑

    千次阅读 2016-11-03 00:23:34
    在使用贝塞尔曲线画图的时候,在画线速度比较快的时候可能会出现不够平滑的现象,所以我们要处理一下这样的问题,首先我将代码附在下面,在这段代码之前要获得这个贝塞尔曲线上的点,在我的博客中有一篇文章就是介绍...
  • ios开发图形绘制相关

    千次阅读 2015-06-09 16:15:36
    ios/iphone开发图形绘制,类360扫描效果 http://blog.sina.com.cn/s/blog_68661bd80101nfp1.html IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片) ...
  • ios: 画半个椭圆

    千次阅读 2016-03-30 15:09:59
    一、画椭圆 椭圆坐标示意图 //定义椭圆的左上角位置,高度,宽度 GRect ellipse = CGRectMake(0, 0, 100, 80); //设置填充颜色 CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);...
  • ios7一些变化(持续更新)

    千次阅读 2014-03-03 15:53:24
    1.UIViewController 的y起点从(0,20)改成了(0,0).也就是说ios7之前视图是从状态栏(0,20)之下开始的,ios7则从(0,0)开始的。 2.UISearchabr去除背景的方法.ios7之前是这样实现的:[[searchbar.subviews ...
  • iOS上绘制自然的签名

    万次阅读 多人点赞 2013-04-25 16:30:47
    iOS上绘制自然的签名这里有一篇很棒的文章写如何在Android上获取流畅的签名:Smoother Signatures,但是我没有找到一篇是写在iOS上如何实现。那么,究竟怎么做才能在iOS设备上获取用户的签名呢?虽然我没有找到...
  • 导航栏 titleView 位置

    千次阅读 2016-12-19 17:07:11
    今天新接到的界面的导航栏上面有一个搜索框(之前也有过,但之前没注意到) 按照设计给的图设置坐标。一 我的想法:为了好控制搜索框和客服按钮的位置,大小及两者距离,我决定将两者均放到titleView上面。...
  • 类似于淘宝一样,我们在写一些购物、订餐之类的app的时候,在用户选择购买或者加入购物车时可以添加一个商品飞到购物车中的动画效果,如下图所示: 实现这个效果还是不算难的,但涉及的问题比较多,还是挺有学习价值...
  • iOS几种动画效果的实现

    万次阅读 2018-06-21 14:06:26
    做过一个项目,里面涉及到的动画效果比较多,在这里做个小小的总结。 直线动画效果 实现一个物体在某段时间从一个点移动到另一个点。 效果如下: 动画相关代码如下: 动画模型: ...@interface AnimationModel :...
  • ios 画圆圈进度条总结

    千次阅读 2015-10-26 20:18:42
    空心圆圈,从90度,正上方...说明一下:_percent 是当前进度,范围是0到1之间。 - (void)drawArc { if (_percent == 0 || _percent > 1) { return; } if (_percent == 1) { float endAngle =2*M_PI*_percen
  • iOS上绘制自然的曲线

    千次阅读 2016-06-13 12:44:08
    Signatures,但是我没有找到一篇是写在iOS上如何实现。那么,究竟怎么做才能在iOS设备上获取用户的签名呢? 虽然我没有找到任何关于获取签名的文章,但是在App store上已经有了实现得很好的app。 Paper by 53...
1 2 3 4 5 ... 20
收藏数 6,455
精华内容 2,582
关键字:

00y值的起点 ios