是时候写一些代码了。让我们先添加一个简单的UIView对象到屏幕上并设置它的圆角。我们要把它添加到我们的主窗口上时因为它是一个快速的例子,但在真实的app界面中你需要添加到管理当前界面的视图控制器中。
一.UI框架 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件。 SVPullToRefresh - 下拉刷新控件。 MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写) XHRefreshControl - XHRefreshControl 是一款高扩展性、低耦合度的下拉刷新、上提加载更多的组件。(国人写) CBStore
前言: 前段时间,苹果爸爸警告了热更新技术,估计是为了力推swift做准备,swift会越来越重要。所以我特地整理了下去年学习swift动画的demo,现在已经把demo更新到最新swift3.0,
模糊效果 FXBlurView - 是一个UIView子类,支持iOS5.0以上版本,支持静态,动态模糊效果,继承与UIView的模糊特效。 VVBlurPresentation - 很简单易用的在原来viewconntroller基础上做模糊,然后呈现新的viewcontroller的。 UICustomActionSheet - 通过模糊背景来着重强调与菜单相关的元素 - 对话框里面已经收藏。 SABlurImageView - 支持渐变动画效果的图像模糊化类库.PS与前几天推存类SAH
3.times { puts 'hello world' } 这是一条Ruby语句,它会打印“hello world”三次,意图清晰,语法简洁。
表相关与的TabBar SWTableViewCell - 国内开源作者,带很多手势的表单元格。 MCSwipeTableViewCell - 带很多手势的表单元格。 TMQuiltView - 瀑布流。 XRWaterfallLayout - 超简单的瀑布流实现,实现说明。 WaterfallFlowDemo - 一个简单的UICollectionView瀑布流布局演示demo。 XLForm - 很多表格类的表,写法更高冷一点,推荐使用。 Eureka.swift - Eur
gif动画 UIImageView-PlayGIF - UIImageView-PlayGIF。 YLGIFImage - YLGIFImage。 YLGIFImage-Swift - YLGIFImage-Swift。 gifu.Swift - gifu.Swift高性能GIF显示类库。 droptogif - droptogif视频拖拽到应用窗口后自动转换为 GIF 动画(其转换进程动画效果也超赞)。 JWAnimatedImage.swift - JWAnimatedImage.swift
嗯。。。UIView 的 animation 方法里面的 options 还有个.repate,是的,就是动画重复,所以我们可以不用去自己算重复的动画次数。。so,使用这个扩展也是可以的
首先先来看看动画设计中的三个角色:产品设计师、算法分析师以及伟大的程序员都有哪些职责。
=======================================================
随着 Flutter 的出现,UI 开发形式也越来越趋向相同,Flutter,SwiftUI,RN,Weex 等新兴UI框架无一意外都使用了声明式的 UI 开发模式,和支持了FlexBox的布局系统。
发现毫无节制的继续拓展是一件没有尽头的事情。原计划五篇完成的CAAnimation系列已经这是第六篇了,还至少有三篇才会完成。 最开始分享这个iOS Apprentice Notes的时候就是打算从基础的部分开始,大体都过一遍之后再找专题或者自己感兴趣的部分深入进去。现在突然发现有点脱离了初衷,看到某些分享的点赞数多、浏览量大,就自觉不自觉的想要迎合一下宝宝们。 自己要把握一些节奏了哈,不然网络的部分、数据库的部分还有巴拉巴拉好多东西要等到猴年马月呀~ 今天主要是借助完成一个带动画特效的登录界面的结束掉咱们
前言: 系统自带的alertView界面有点呆板,动画有点单一,总之随着业务的发展,系统自带的alertView已经很难满足我们的需求,那自定义的就很有必要。本文就介绍如何自定义alertView,看完你就懂得制作属于自己的alertView了 一、创建DWAlert.swift 创建一个类名为在DWAlert.swift,在class DWAlert: UIView里面添加一些常量和属性 //const 常量 let kAlertWidth = 245.0 let kAlertHeight = 16
Swift中的Struct都有个系统提供默认的包含所有成员遍量的init方法,如果我们添加自定义的init方法时,系统默认提供的就会消失,如果需要既可以保留系统默认的init方法,又需要添加自定义的init,可以使用一个小技巧:将自定义的init方法写在Struct的extension中
到这里相关的说明已罗列完毕,有什么不清楚的可以下载Demo看看,或者在文章下方留言提问
前言: 开发得跟view打交道,我们也经常看到苹果官方代码有layout方法的相关调用,但是大家可知道什么时候调用,什么时候需要吗?针对网上大部分资料讲得不够清晰,我决定用Demo来讲解 一、layoutSubviews 不能直接调用这个方法。强制刷新布局,调用 setNeedsLayout,如果想马上刷新界面,调用layoutIfNeeded 二、setNeedsLayout跟layoutIfNeded setNeedsLayout调整视图的子视图的布局时,在应用程序的主线程调用此方法。此方法记录
前言: 1、在Mac OS中NSWindow的父类是NSResponder,而在iOS中UIWindow的父类是UIView。程序一般只有一个窗口但是会又很多视图。 2、UIView的作用:描画和动画,视图负责对其所属的矩形区域描画、布局和子视图管理、事件处理、可以接收触摸事件、事件信息的载体等等。 我在前面详细介绍了setNeedsDisplay , setNeedsLayout和layoutIfNeeded 详情请点击。 下面介绍的是view添加以及删除时所触发的方法 // 当视图添加子视图
最终实现的效果: 基础动画之平移效果 1. 基础版的平移 这里重点是为了演示fromValue/toValue 、 设置layer的Position位置、实现代理方法里面设置position的区别。
要给视图添加一个抖动效果,比如登录时输入框校验出错给出提示之类的~~~反正就是项目中用到了咯。。。 那就写个就是了 基本思路就是让视图左右移动或者上下移动 调用视图的仿射变换函数就可以了吧 view.layer.setAffineTransform( CGAffineTransform(translationX: 2, y: 0)) 这就可以让视图往左变换了,往右就是-2咯,改Y就是上下呗 抖动,抖动肯定是有次数的,我们根据次数来移动视图,每次调用自身扩展修改方向 具体代码我就粘在下面咯,反正也没多少行 /
翻译自raywenderlich网站iOS教程Graphics & Animation系列 介绍 UIKit Dynamics是一个集成到UIKit中的完整物理引擎。它允许您通过添加诸如重力,附件(弹簧)和力量等行为来创建感觉真实的界面。您定义了您希望界面元素采用的物理特征,动态引擎负责其余部分。
iOS 是由苹果公司开发的移动操作系统 。苹果公司最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统(最初叫 iPhone runs OS X)。该系统最初是设计给 iPhone 使用的(所以后来曾命名为 iPhone OS),之后陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上(所以在 WWDC 2010 上最终宣布更名为 iOS)。
笔者在App登录后,切换RootViewController时,发现window上盖着一层看不见的View。如图所示:
实现思路 自定义转场动画时需要做以下几步 以下内容假设是从A–>B添加的segue 添加两个segue(一个是用于正向转场 ,一个是新页面推出时的反向转场动画) 从原view向目标view右键拖动 这是segue的可选项中就会有新添加的两个segue 选择正向的那个转场,也可以选择custom 然后设置segue对应的class 反向转场相对就要麻烦些了 反向转场是B–>A 首先在A中重写返回A时调用的方法(不是B中)方法中设置转场调用的动画 详细实现 正向转场的实现类 // // PushSegue.s
1. 创建CALayer position:默认情况下相当于UIView的center contents:CALayer的内容。可以设置为图片,但是需要桥接。桥接不需要自己额外设置,编译后编译器会自动提示,让Xcode自动帮我们桥接就可以啦。 就像添加子视图一样,别忘了把自己创建的Layer添加到view.layer上面。 - (void)viewDidLoad { [super viewDidLoad]; CALayer *dialLayer= [[CALayer allo
真心的认为Lottie是一款十分优秀且实用的动画开发库,不只对于iOS和android原生开发者来说其让复杂动画的实现几乎没有成本,对于设计师来说,它的所见即所得,不需导出帧图像等优势也十分明显。本篇博客主要以iOS平台为例,简单介绍和总结Lottie动画库的使用方式。
一个 UIViewController 中的所有 view 之间的关系其实可以看成一棵树,UIViewController 的 view 变量是这棵树的根节点,其它的 view 都是根节点的直接或间接子节点
自动布局 02 Mar 2016 Comments 前言 最近遇到一个复杂视图:根控制器里面有上下两个子控制器,子控制器中各自实现类似PageView的视图,然后PageView的每一页是一个WebView,同时中间有个可拖拽的控件,实现上下两个控制器视图的大小调整。采用子控制器的原因是因为防止所有的逻辑代码都混在根控制器中,所以没有使用nicklockwood 的iCarousel 或SwipeView ,而是采用了之前一直在用的SCPageViewController 。 记录下自动布局中遇到的几个坑。 关于translatesAutoresizingMaskIntoConstraints
效果图.gif 前言: 本文将会创建以下几个主类: DWContainerViewController:这包含了左视图,中视图和右视图控制器的视图,并处理动画和滑动等操作。 DWCenterViewController:中央面板。 DWSidePanelViewController:用于左侧和右侧面板。 创建storyboard,如图: image.png 并且创建DWCenterViewController、DWStarCell、DWSidePanelViewController,关联上图中的
这一篇主要介绍基础动画之缩放和旋转。这些基本操作分享完之后,我想想可以找个稍微复杂一点点的动画做做啦。 这篇继续基础篇,分享一下缩放和旋转。因为整体思路和平移基本上没有变化,加上源代码里面也有OC版本
翻译自raywenderlich网站iOS教程Graphics & Animation系列
前言:上章UIKit Dynamics 置身真实世界介绍了基本用法,下面我们继续深入学习——手势跟Dynamics结合的用法 一、触摸处理 1、在ViewController.swift添加以下属性,并在Main.storyboard结合这些属性,在Main.storyboard添加一个imageView,以及扮演redSquare,blueSquare的俩个view @IBOutlet weak var imageView: UIImageView! @IBOutlet weak var
最近遇到一个复杂视图:根控制器里面有上下两个子控制器,子控制器中各自实现类似PageView的视图,然后PageView的每一页是一个WebView,同时中间有个可拖拽的控件,实现上下两个控制器视图的大小调整。采用子控制器的原因是因为防止所有的逻辑代码都混在根控制器中,所以没有使用nicklockwood的iCarousel或SwipeView,而是采用了之前一直在用的SCPageViewController。
来来来,今天咱们通过实现一个类似Twitter的启动动画来看看CAKeyFrame Animation和CAAnimation Group怎么玩。 所以今天咱们的重点到了第七章,CAKeyFrame Animation和CAAnimation Group。最后的那个启动动画完全是为了实践一下看看CAKeyFrame Animation和CAAnimation Group怎么使用。 有读者私下说更新速度太慢了。在码云上看了一下下载的统计,发现其实下载的童鞋并不是特别多。如果只是看看思路,或者复习一下这些基础知
完整项目 GSD_WeiXin 高仿微信 v2ex - v2ex的客户端,新闻,论坛。 V2ex-Swift - 用Swift写的V2EX客户端。 iBBS-Swift - “新手开源一个用Swift(2.0)写的论坛客户端”。BBS 服务端。 wikipedia-ios - 维基百科-ios客户端。 jetstream-ios - 一款Uber的MVC框架,它同时提供了多用户实时通讯支持,一旦启动JetStream后端服务,通过WebSocket协议可以分钟建立多用户实时通讯应用。
在最后几节中,我们能够检测到一个平面并显示一个焦点方块,以帮助我们为模型指定一个位置。我们也熟悉了热门测试和世界变换。现在,我们拥有显示虚拟对象所需的所有工具。在本教程中,我们将学习如何检索模型并使用按钮的触发器将其呈现在场景中。一旦显示,我们将隐藏焦点方块。
最近到新公司有些忙,这篇文章一直想写但没时间,今晚也不往后拖了,抽出时间将其写完。 前一阵子换工作,离职前给公司招一个iOS成员来接任,期间面试近10人,有一些东西想和大家分享一下。 下面是我出的面试题 1.下面这种写法有问题吗 #import "ViewController.h" @interface ViewController () @property (nonatomic, strong) UIView *myView; // @end @implementation ViewControl
测试及调试 HeapInspector - HeapInspector是一个用于检测应用程序的内存泄漏的开源调试工具。 Crashlytics - Crashlytics崩溃报告崩溃日志使用说明 。 UIViewController-Swizzled - 把你进入的每一个控制器的类名打出来,如果看一些特别复杂的项目的时候直接运行demo就可以知道执行次序了。 snoop-it -snoop-it比UIViewController-Swizzled好用,代码托管在谷歌上。 版本 - 版本
有的人在埋头读书;有的人约朋友玩网络游戏;有的人沉迷于交友软件;而有的人已经成为iOS App的开发者,成功获取苹果WWDC奖学金并受邀进入WWDC现场。
前言: iOS的设计目标鼓励您创建数字接口(digital interface),对触摸,手势和方向的变化做出反应,就好像它们是物理对象而不仅仅是简单的像素集合。可以使用户可以通过皮肤深层的自身形态与界面更深层次的联系。 工具介绍: UIKit Dynamics是整合到UIKit中的完整物理引擎。它允许您通过添加重力,附件(弹簧)和力等行为来创建感觉真实的界面。您定义了您希望您的界面元素采用的物理特征,动力学引擎将照顾其余部分。 Motion Effects使您可以创建炫酷视差效果。基本上,您可以利用手
刚开始使用 Autolayout 遇到下面的警告人容易让人气馁,经常不知所措而放弃了使用 Autolayout。
比如我们的xib名字为ZJUserPicView.xib 就必须建一个相同名字的类ZJUserPicView.swift并继承ZJXibView
你已经在 iOS 应用程序上工作了一段时间,你认为你很聪明。 你以为你已经做到了,嗯?
上一篇文章iOS - Swift 面向协议编程(一) 已经对Swift的面向协议编程做了介绍,接下来该篇文章将使用面向协议开发(POP)来做下实际的应用 在实际开发中,自定义View基本上是必须
接着上面一篇说的内容: 一 继承: 苹果继承与水果,苹果是水果的子类,则苹果是一种特殊的水果;这就是继承的关系,这个我们学OC的时候相信也都理解了,就不再描述定义了,下面的就叫继承: class ZXMessageCell: UITableViewCell { // 自定义的cell继承与UITableviewCell } 继承了父类,你也就能使用父类的属性方法,这些我们学OC的时候也都清楚。看下面几点, 1:重写父类的方法 2:重写父类的属
UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验。UIView可以产生动画效果的变化包括:
摄像照相视频音频处理 SCRecorder - SCRecorder短视频录制。 VideoPushDemo - 视频剪辑视频特效制作1 视频特效制作2。 LLSimpleCamera - 一款简单的,可自定义的iOS摄像头控件,摄像头。 EZAudio - EZAudio是一个iOS和OSX上简单易用的音频框架,根据音量实时显示波形图,基于Core Audio,适合实时低延迟音频处理,非常直观。中文介绍,官网。 ffmpeg - ffmpeg官网,FFmpeg在iOS上完美编译。 V
当今是个看脸的世界,一个app的颜值可能会决定用户的使用次数,icon的颜值更可能决定了用户是否回去下载,如果太丑,放在手机桌面都难看,那用户很可能就直接卸载了。所以漂亮的界面UI + 合理的用户体验UX/UE也会很大程度决定用户的黏性。最近由于公司的app准备美化一下界面,提升性能,所以我就想把美化过程中可以和大家分享的东西都整理整理,拿出来也和大家一起分享学习。这个“旧貌换新颜”我就写成一个系列吧,相信美化的道路是永无止境的!(场外音:自己又给自己开了一个巨坑)
本期是 Swift 编辑组自主整理周报的第二十四期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
从我决定拥抱 Swift 到现在已经 8 个月了。这几个月中,我一边学习着如何避免写出 Objective-C 风格的 Swift 代码,一边真正开始使用这门新语言。
在 iOS 里面,无论是 Objective-C 还是 Swift,类(结构体、枚举)的初始化都有一定的规则要求,只不过在 Objective-C 中会比较宽松,如果不按照规则也不会报错,但会存在隐患,而在 Swift 则需要严格按照规则要求代码才能编译通过,极大提高了代码的安全性。
领取专属 10元无门槛券
手把手带您无忧上云