近期開始开发一个新的iOS应用,自己决定使用Swift.进行了几天之后,发现了一个非常严峻的问题.那就是无论是书籍,还是网络资源,关于Swift的实在是太少了,随便一搜全都是OC实现某某某功能.就算是找到Swift的资源,一看,大概是半年前的代码.或是一年前的代码,一执行.全都报错. 这是因为毕竟Swift还是在不断发展完好其中,随着Swift2.0的开源以来,包含公布Swift这一年多以来,Swift的修改还是非常大的,非常多的接口或是语法前后有较大差异.有些功能仅仅能自己硬生生看官方文档或挤…
手机作为一个小屏设备,须要显示的信息往往无法在一个屏幕上显示,此时就须要使用到滚动栏,当然除了像TableView这样能够自带滚动功能的. 假设一个界面上View较多,那就必须要使用到ScrollView了.如今我们将会使用Swift在iOS上实现滚动效果.详细实现例如以下: (1)创建一个新的iOS项目.语言选择Swift,并在Main.storyboard中拖入一个ScrollView控件.然后在ScrollView中拖入几张照片,等下能够使用滚动功能查看照片.界面例如以下: waterma…
Swift封装图片轮播视图: import UIKit class XHAdLoopView: UIView { private var pageControl : UIPageControl? private var imageScrollView : UIScrollView? private var currentPage: NSInteger? /******************* 重写get方法 **************/ private var currentImgs = N…
在github上面有很多的第三方类库,大大节约了大家的开发时间 下载地址:https://github.com/gsdios/SDCycleScrollView 现已支持cocoapods导入:pod 'SDCycleScrollView','~> 1.61' 效果 具体实现代码 #import "ViewController.h" #import "SDCycleScrollView.h" @interface ViewController () <S…
前言 市面上绝大部分的APP被打开之后映入眼帘的都是一个美轮美奂的轮播器,所以能做出一个符合需求.高效的轮播器成为了一个程序员的必备技能.所以今天的这篇博客就来谈谈轮播器这个看似简单的控件其中蕴含的道理. 正文  首先我们来分析一下该如何去实现一个类似下图的轮播器(图片数量.URL由服务器返回):   策略一:UIScrollView->UIImageView->NSTimer轮询 这算是常规的策略,但是如果仔细想想,如果服务器返回给你50图片是不是就需要创建50个UIImageView来做容…
pc端的轮播,移动端的轮播都很常见.一年前,我还为手机端没有左滑,右滑事件从而封装了一个swipe库,可以自定义超过多少滑动时间就不触发,也可以设置滑动多少距离才触发,这一个功能的代码就达到400多行了,当我遇到finger.js后,就直接抛弃自己写的那个库了. 扯了那么多,是时候进入正题,这里用touch插件来写一个轮播组件的封装. 使用姿势如下: var banner = new Banner({ images: ['ci5.jpg', 'ci6.jpg', 'ci7.jpg', 'ci8.…
经典错误一 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7, VA 运行报错 出现的原因:armv7s是应用在iPhone 5 A6 的架构上的 解决的方式: 1,在Project target里“Architectures”设置为“Standard (armv7,armv7s)” 2,修改在Project target里“Build Settings”的“Valid Architectures”添…
类QQ粘性按钮(封装) 那个,先来说说原理吧: 这里原理就是,在界面设置两个控件一个按钮在上面,一个View在下面(同样大小),当我们拖动按钮的时候显示下面的View,view不移动,但是会根据按钮中心点和它的中心点的距离去等比例变化自己的半径,越远半径酒越小,最后就会消失,而我们这里吗最难的就是在变化的过程中去计算并且设置他们两个之间的区域并且填充.这里需要计算六个点的位置(根据勾股定理),然后根据两个控件同一边的位置的两个点去绘制一条曲线.拖动距离到达一定的时候就会使用动画(序列帧)去清楚界…
实现思路: 1.每一条新闻就是一个cell,在cell上添加点赞按钮. 2.让cell的控制器成为自定义cell的代理,将点击了哪一个cell放在代理方法中传出去. 3.并将这条新闻的ID和当前用户的ID上传服务器. 4.此时要考虑每个用户只能点击一次,且当用户再次点击的时候,取消点赞(定义一个BOOL变量存储用户的点击次数).则将上传的数据取出来,做判断,如果取出来有数据,说明用户点击过,没有数据那就存储到网络.再次点击,将请求下来的数据,即BOOL变量存储为NO,即取消点赞. 5.到这里就要…
Block使用注意点浅析 1.在使用block前需要对block指针做判空处理. 不判空直接使用,一旦指针为空直接产生崩溃. if (!self.isOnlyNet) { if (succBlock == NULL) { //后面使用block之前要先做判空处理 return; } id data = [NSKeyedUnarchiver unarchiveObjectWithFile:[self favoriteFile]]; if ([data isKindOfClass:[NSMutabl…