绘图

作者: 慢步IT者 | 来源:发表于2018-01-08 20:06 被阅读0次

1,
Core Graphics是一套提供绘图功能的C语言API,它最重要的“对象”是图形上下文(CGContextRef的“对象”),负责存储绘画状态(例如画笔颜色和线条粗细)和绘制内容所处的内存空间。

2,
子类无法访问父类在类扩展中声明的属性和方法。但是如果子类和父类在同一个文件里定义和实现,子类是可以访问到的

image.png

在BNRHypnosisView.m实现文件里,父类类扩展里的属性circleColor能被子类访问到,如下图


image.png

3,
将UIScrollView看成是镜头,而其子视图是要拍摄的景观。我们移动的是“镜头”而不是“景观”。UIScrollView的frame就是这个"镜头"的尺寸,而其能够拍摄的范围是由其属性contentSize决定的。

4,
UIScrollView对象的分页实现原理是:UIScrollView对象会根据其bounds的尺寸,将contentSize分割成尺寸相同的多个区域。拖动结束后,UIScrollView实例会自动滚动并只显示其中的一个区域

self.scrollView.pageEnabled = YES;

5,
UIVew的sizeToFit方法可以自适应宽高,注意其调用的位置,一定是在获得了展示内容之后,否则设置无效。

UILabel *messageLabel = [[UILabel alloc] init];
        messageLabel.textColor = [UIColor redColor];
        messageLabel.text = message;
        [messageLabel sizeToFit];//宽高自适应,放在上面一行代码的前面就不行。
        
        //获取随机x,y坐标
        int width = (int)(self.view.bounds.size.width - messageLabel.bounds.size.width);
        int x = arc4random() % width;
        
        int height = (int)(self.view.bounds.size.height - messageLabel.bounds.size.height);
        int y = arc4random() % height;
        
        //设置frame
        CGRect labelFrame = messageLabel.frame;
        labelFrame.origin = CGPointMake(x, y);
        messageLabel.frame = labelFrame;
        
        [self.view addSubview:messageLabel];

6,
稍微倾斜iOS设备,主屏幕中的图标会随着倾斜方向相对于壁纸移动。这是通过感应器实现的一种视差效果(parallax)。iOS设备内嵌了许多功能强大的传感器,如加速传感器,磁场传感器和三轴陀螺仪等。
应用可以通过UIInterpolatingMotionEffect类来实现一定程度的视差效果。如下,对label添加水平方向和竖直方向上的视差效果。其中心坐标在每个方向上最多移动25个点。

        UIInterpolatingMotionEffect *motionEffect = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.x" type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis];
        motionEffect.minimumRelativeValue = @(-25);
        motionEffect.maximumRelativeValue = @(25);
        [messageLabel addMotionEffect:motionEffect];
        
        motionEffect = [[UIInterpolatingMotionEffect alloc] initWithKeyPath:@"center.y" type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis];
        motionEffect.minimumRelativeValue = @(-25);
        motionEffect.maximumRelativeValue = @(25);
        [messageLabel addMotionEffect:motionEffect];

相关文章

  • MATLAB 绘图(二)

    概述 本次的内容涉及到除了线图以外的绘图,包括离散绘图、极坐标绘图、曲面绘图和统计绘图。 离散绘图:茎干图、阶梯图...

  • R|绘图-学习笔记(二)

    tags: 绘图 R的三大绘图系统 1. 基本绘图系统 (base plotting system) 绘图始于空白...

  • Plotly 绘图神器使用说明

    在线绘图 离线绘图

  • 二维数据、三维数据的绘制

    数据:房价预测绘图方式:二维 绘图库:seaborn 绘图方式:三维 绘图库:matplotlib

  • Python动态绘图

    Python数据分析经常需要用到交互式动态绘图!Python的绘图方式包括“控制台绘图”和“弹出窗绘图”,动态绘图...

  • R基础绘图

    逐步绘图 R内置的基本绘图包graohics绘图逻辑:打开一个绘图板,制定绘图区,逐步添加各种图形元素。以下为例:...

  • iOS绘图详解(链接)

    iOS绘图详解iOS绘图教程

  • python 海龟作图

    turtle绘图 turtle绘图是python中引入的一个简单绘图工具,利用turtle模块绘图又被称为海龟作图...

  • iOS 绘图

    转自:iOS绘图—— UIBezierPath 和 Core Graphics绘图进阶请参考:绘图 前言 iOS系...

  • Android绘图之PathMeasure(16)

    Android 绘图学习 android绘图之Paint(1)android绘图之Canvas基础(2)Andro...

网友评论

      本文标题:绘图

      本文链接:https://www.haomeiwen.com/subject/jwkswxtx.html