首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Swift中创建可缩放的图像视图

在本教程中,我们将建立一个可缩放、可平移的图像视图来实现这一功能。 计划 他们说,一张图片胜过千言万语--但它不一定要花上一千行代码!对于我们的可缩放图像视图,我们要做的是让它成为一个可缩放的视图。...对于我们的可缩放图像视图,我们将利用UIScrollView的缩放和平移功能。...设置滚动视图 我们需要实际设置我们的滚动视图,使其可缩放和可平移。这包括设置最小和最大的缩放级别,以及指定用户放大时使用的UIView(在我们的例子中,它将是图像视图)。...我们将通过在我们的类中添加imageName字符串,并在字符串改变时更新UIImageView来实现。...这也不仅仅适用于图片视图--如果你想让UIView可缩放,你可以采取同样的方法,用UIView而不是图片名称初始化你的类。可以尝试一下!

5.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用CAShapeLayer绘图

    之前讲过使用UIBezierPath在UIView的drawRect中绘图, 今天我们讲下另外一种方式: CAShaperLayer 先说说使用CAShapeLayer的优点: GPU执行, GPU执行...按照之前的思路是创建一个UIView子类, 用UIBezierPath画一个外围的不闭合圆弧, 在画中间点圆 代码量不是很多弹也不少, 那假如用CAShapeLayer实现时怎么样子的呢?...重点是这里有一个初学者经常会犯的错误, 同学们在绘制曲线的时候经常会以layer在父图层中的相对位置去绘制曲线,这是错的!!! 应该以layer自身的坐标系划线。...请记住,在iOS中,以x轴正方向(即水平向右)为0度,顺时针旋转一周为360度。 下面我们再使用CAShapeLayer绘制一些特殊的形状 ?...比如hud这个, 我们之前用UIBezierPath在UIView的DrawRect中画画过, 相对比较简单 我们用CAShapeLayer事实看。

    1.2K10

    绘图-几种基本统计图的实现分析

    前言 在开发中我们会遇到各种统计图,或者各种绘图,本文通过对基本三大统计图:折线图、柱状图、扇形图的实现来掌握基本统计图的绘制,在下一篇文中会带来复杂一些的绘图案例分析,循序渐进达、触类旁通达到绘制各式各样图表的能力...折线图.gif 通过自定义UIView使用自定义init方法赋值数据源,后调用 UIView的drawRect方法进行绘制。...自定义 UUBar类,展示的是单个柱状的效果,在 UUBarChart类中调用生成多个柱状的效果。...UUBar中 使用CAShapeLayer 、UIBezierPath、CABasicAnimation可实现动态柱状图 CAShapeLayer设置 _chartLine.fillColor =...使用UIBezierPath绘制扇形 在我这篇文章中我说过:UIBezierPath是在 UIKit 中的一个类,继承于NSObject,可以创建基于矢量的路径.此类是Core Graphics

    1.5K10

    码一个高颜值统计图

    一:介绍 在项目中遇到数据展示需求时,往往会通过,以列表的形式展示出数据或者以表格的形式展示。但是并不能直观的观察数据的变化,如果通过图表的形式来展示,就可以更快捷的获取到数据变化情况。...,效果原因只在竖直柱状图时有效 @property (nonatomic, assign) CGFloat labelRotation; ///如果要图表可以滑动设置的偏移值,横向柱状图时为水平滑动,...property (nonatomic, assign) CGFloat barWidth; ///间距 @property (nonatomic, assign) CGFloat margin; ///可滑动时默认显示的初始偏移距离...) GradientType gradientType; 实现核心源码如下: - (void)drawLine{ CAShapeLayer *lineLayer= [CAShapeLayer layer...下载源码 在demo中找到FBYLineGraph文件夹,将文件夹拖入自己的项目中。DEMO截图 ? 2.

    1.8K10

    iOS CALayer 简单介绍

    https://www.jianshu.com/p/09f4e36afd66 什么是CALayer: 总结:能看到的都是uiview,uiview能显示在屏幕上是因为它内部的一个层calyer层。...在创建uiview的时候,uiview的内部会自动创建一个层(calayer对象)通过uiview的layer属性可以访问这个层。...当uiview需要显示在屏幕上时,会调用drawrect 方法进行绘制,并将所有的内容绘制在自己的层上,绘制完毕之后,系统会将层拷贝到屏幕上,于是uiview就显示了。...换句话说,uiview本身并不具备显示功能,它的内部的层才有显示功能。 CALayer的基本功能 通过操作CALayer对象,可以调整uiview的一些外观属性。...下边附上代码: //1.渐变的简单实现demo UIView *bgView = [[UIView alloc]initWithFrame:CGRectMake(0, 15, 100, 100

    65720

    iOS Core Animation的用法

    简介 在iOS中,图形可分为以下几个层次: 越上层,封装程度越高,动画实现越简洁越简单,但是自由度越低;反之亦然。本文着重介绍Core Animation层的基本动画实现方案。...在iOS中,展示动画可以类比于显示生活中的“拍电影”。...,同样有backgroundColor、frame等相似的属性,我们可以将UIView看做一种特殊的CALayer,只不过UIView可以响应事件而已。...当然,你也可以用Core Graphics直接向原始的CALyer的内容中绘制一个路径,相比直下,使用CAShapeLayer有以下一些优点: 渲染快速。...一个CAShapeLayer可以在边界之外绘制。 你的图层路径不会像在使用Core Graphics的普通CALayer一样被剪裁掉。 不会出现像素化。

    1.4K30

    带动画渐进效果与颜色渐变的圆弧进度控件设计 原

    带动画渐进效果与颜色渐变的圆弧进度控件设计      今天帮朋友写了一个小巧的圆弧进度控件,控件十分简单,主要设计思路采用CAShapeLayer来创建控件圆弧形状,使用CAGradientLayer...来进行颜色渐变的渲染,两者结合来创建出颜色渐变的圆弧进度条控件,关于进度动画采用CoreAnimation动画处理。...控件进行了简洁的封装,提供了面向使用的接口,需要的朋友可以自取,Demo地址如下: http://pan.baidu.com/s/1gfqDbtp。       ...控件中主要提供了,改变进度条渐变颜色,圆弧进度条宽度,带动画效果的改变进度,改变进度百分比字体颜色等方法。效果是例如如下: ? 改变字体颜色 ? 改变进度 ? 改变进度条颜色 ?...改变进度条宽度     控件接口的设计: #import  @interface YHBaseCircleView : UIView //==============下面三个渐变色必须全部设置

    1.2K20

    老司机带你走进Core Animation 之CAShapeLayer和CATextLayer

    由于老司机这个想起来啥说啥的特点,CALayer与UIView的一些关系以及CALayer的一些重要属性,早在老司机CoreAnimation系列第一章里面就已经做了很系统的介绍。...---- CAShapeLayer 其实在日常使用中,CALayer能满足需求的情况还是比较少的,(当然你用它来划线还是很好用的),原因就在于CALayer并不能很方便的生成除了矩形的其他形状。...重点是这里有一个初学者经常会犯的错误,同学们在绘制曲线的时候经常会以layer在父图层中的相对位置去绘制曲线,这是错的!!!应该以layer自身的坐标系划线。...老司机可以告诉你答案,靠上的那个点是终点。那为什么0.75是在那个位置呢?请记住,在iOS中,以x轴正方向(即水平向右)为0度,顺时针旋转一周为360度。...画了一条虚线 代码还是上面circle那段代码,在末尾添了三句话 circle.lineWidth = 2; circle.lineDashPhase = 3; circle.lineDashPattern

    1.5K20

    从案例出发,由浅到深了解 iOS 动画

    至于动画框架,有 UIView 级别的,有功能强劲的 CALayer 级别的动画。...CALayer 级别的动画通过灵活设置的 CoreAnimation,CoreAnimation 的常规操作,就是自定义路径 当然有苹果推了几年的 UIViewPropertyAnimator, 动画可交互性做得比较好...框架自带的动画,看起来不错,就是做了一个简单的缩放,通过 transform 属性做仿射变换 func startAnimation() { dotOne.transform = CGAffineTransform...这里动画效果的主要用到 strokeEnd 属性, 笔画结束 插值的时候,要注意,下一段动画的开始,正是上一段动画的结束 // 这个用来,主要的效果 let progressLayer = CAShapeLayer...一般这种动画,我们用 Lottie * * * 例子十:文本变换动画 [image] 这个动画有些复杂,重点使用了 CoreAnimation 的组动画,叠加了五种效果,缩放、尺寸、布局、位置与透明度。

    78330

    iOS 自定义相机页面

    在文中,顺便说下我碰到的两个问题:拍摄页灰色透明遮罩绘制 和拍摄后黑屏问题 代码Demo都有了,我这里只说下流程。 首先写个继承UIImagePickerController的自定义类。...= shapeLayer; 然后你可以在self.view里面添加你的拍摄按钮。...这个想法其实是为了省事,正确做法是把隐藏放在获取到图片后,即在拍摄后的代理方法中。然而万万没想到这个懒惰思想造成了一个Bug。 拍摄图片后,偶尔图片会是全黑的。...黑屏了 查了一些资料得知:当拍摄的图片正在绘制的时候,如果做了有关UIKit的图层操作,会造成黑屏。很明显,我在这里隐藏按钮是不行的,如果同时在绘制,就会黑屏。...在自定义相机页View中的drawRect方法中使用贝赛尔曲线绘制页面线条,例如四个角框: UIColor *color = kLineColor; [color set]; //设置线条颜色

    2.5K10

    GEE中核函数在不同缩放级别下的区别

    内核都采用单位参数,可以是像素或米,文档指出: 内核的测量系统(“像素”或“米”)。如果内核以米为单位指定,则当缩放级别更改时它将调整大小。...我认为这是不正确的,如果内核以像素为单位指定,它会随着金字塔级别的变化而改变缩放级别吗?您可以在上面的代码中比较圆内核 (m) 与圆内核 (px) 来确认此行为。...如果放大第四个桥,您会发现在查看像素时解析细节的能力有所提高,而米细节保持不变。 2. 当内核使用米单位时,在更高的金字塔级别上是如何计算的?例如,它是在本机计算然后缩小的吗?...我尝试通过在像素单元内核上使用手动重投影来测试这一点,但是它的运行速度比米版本慢得多,所以我认为这不是它的完成方式,并且它得到了完全不同的视觉结果。...解决方案 半径为“3 像素”的内核在任何投影/比例中始终为 7x7“像素”,这将导致每个比例的米数不同。

    13810

    在Vue中创建可重用的 Transition

    现在,我们可以传递普通transition组件可以接受的任何事件和支持,这使得我们的组件更加可重用。但为什么不更进一步,增加通过 prop 轻松定制持续时间的可能性。...在我们的案例中,我们真正需要的是通过组件prop控制CSS animation/transition。 我们可以通过不在CSS中指定显式的CSS动画持续时间,而是将其作为样式来实现。...现在,我们可以控制实际的可见过渡时间,这使我们可重用的过渡变得灵活且易于使用。 但是,如何过渡多个元素(如列表项)呢?...如果我们可以在相同的组件中这样做,并公开一个将切换到transition-group实现的group prop,那会怎么样呢?...我认为它非常方便,可以轻松地在不同的项目中使用。你可以试一试:) 总结 我们从一个基本的过渡示例开始,并最终通过可调整的持续时间和transition-group支持来创建可重用的过渡组件。

    9.8K20

    iOS app 旧貌换新颜 (一)—Launch Page 让 Logo"飞" 出屏幕

    二.动画原理 接下来说一下上面那个启动特效的原理,其实原理很简单:app在启动之后,先加载一个View,上面放了我们的logo,然后在做一个放大的UIView的动画就好了。接下来看看我的做法吧。...5.接下来我们就选择左边面板上面有一个Page面板 选一下刚刚描出来的Path,右下角会出现一个Export面板 这个时候我们选择导出SVG文件 SVG svg logo 可缩放矢量图形(Scalable...SVG是W3C("World Wide Web ConSortium" 即 " 国际互联网标准组织")在2000年8月制定的一种新的二维矢量图形格式,也是规范中的网络矢量图形标准。...7.现在我们回到Xcode工程中。添加一个UIView用来显示Logo。...并且把Layer加到View的Layer中 -(void)addLayerToLaunchView { //self.launchView是我添加的一个显示Logo的UIVIew CAShapeLayer

    13010
    领券