- 博客(21)
- 收藏
- 关注
原创 iOS: 热门搜索标签界面(Swift3)
首先创建一个SearchView类,这个类分为上面的标题文字和下面的按钮.按钮的数量是不确定的,在将按钮添加到SearchView之前先记录下这个按钮的maxX加上横向间距的值和y值,在布局下一个按钮的时候先判断这一行余下的距离是否大于这个按钮的宽度,也就是SearchView视图的宽度减去上一个按钮的maxX加上横向间距的值是否大于这个按钮的宽度.如果大于就是说剩下的距离可以放下这个按钮,那么这个
2017-06-02 15:13:36
2485
1
原创 iOS:UICollectionView实现无限轮播图(Swift3)
效果图原理:给collectionView设置多组一样的数据,默认展示中间的那一组.当滚动到上一组或者下一组的时候采用无动画的方式滚动到最中间的那一组.这样就实现了视图的无限轮播.class MCCycleView: UIView, UICollectionViewDelegate, UICollectionViewDataSource { private var collectionView
2017-04-05 17:44:41
2572
原创 iOS:圆形头像和菱形头像的实现
1.圆形头像为UIImage添加一个分类UIImage+Clip.#import "UIImage+Clip.h"@implementation UIImage (Clip)//第一个参数是图片名称 第二个参数是边框宽度+ (instancetype)clipImageWithImageName:(NSString *)name border:(CGFloat)border { UIIma
2017-03-09 18:19:53
1803
原创 iOS:二维码扫描
二维码(QRCode)的本质其实就是一个字符串,我们的最终目的就是将二维码图片转换成字符串.首先导入AVFoundation框架#import <AVFoundation/AVFoundation.h>实例化有关二维码扫描的四个对象@interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate>//输入设备 也就是摄像头@p
2017-02-17 22:31:50
995
原创 iOS:自定义下拉刷新视图和下拉刷新原理
首先自定义一个UIRefreshControl名字叫做NewRefreshControl,在UITableViewController中将它的refreshControl设置成自定义的refreshControl,并且为refreshControl添加监听事件.- (void)viewDidLoad { [super viewDidLoad]; self.refreshControl
2017-02-14 14:23:43
917
原创 iOS: Block使用指南
1.block的声明返回值类型(^block的名字)(参数类型);无参无返回值的block void(^block1)();有参无返回值的block void(^block2)(int);无参有返回值的block int(^block3)();有参有返回值的block int(^block4)(int, int);记不住block的语法怎么办?直接敲inlin
2017-02-13 23:16:46
468
原创 iOS:Swift桥接OC代码
正常情况下在Swift工程中是不能使用OC的代码的.但是我们可以使用桥接来实现.首先在根目录中创建一个名为Bridge.h的Header File.接下来在工程的Build Settings中找到Objective-C Bridging Header并将他的值设置成 工程名/Header File文件名.比如说我的工程名字叫桥接,刚刚创建的Header File叫Bridge.h,
2016-12-19 21:30:30
680
原创 iOS:Swift自定义print
与OC中的自定义NSLog相似,先创建一个Swift File将以下代码复制到新创建的文件中func printLog(message: T, logError: Bool = false, file: String = #file, method: String = #function,
2016-12-02 16:17:38
1302
原创 iOS:XML文件的解析(SAX解析)
XML解析分为DOM解析和SAX解析,DOM解析非常的耗费性能,所以移动设备一般用SAX解析.它是从上向下解析的.下面是我们要解析的XML文件样式.先创建一个模型,名字就叫MCVideo,我们的最终目的就是将XML文件解析成模型数组.#import @interface MCVideo : NSObject@property(nonatomic,copy)NSString
2016-10-30 16:44:14
501
原创 iOS:电话分享、短信分享和邮件分享
在很多App里面我们都会看到分享给朋友的选项,一般是电话分享、短信分享和邮件分享.电话分享:第一反应肯定是调用Application的openURL:方法,但是这种方法是有问题的.并且这个方法在iOS10里面也已经过期了,改用openURL: options: completionHandler方法. NSURL *url = [NSURL URLWithString:@"t
2016-10-23 13:56:19
5224
原创 iOS中的几种数据存储方式(plist存储、偏好设置存储、归档存储)
1.plist存储plist存储可以存储系统自带的对象比如NSAaary、NSDictionary等,一般可以写出writeToFile:这个方法的对象都可以使用plist存储.一般写入到Document文件夹.plist存储的写入: NSArray *arr = @[@"Chinese",@"Japan",@"Ausrtalia"]; //获取Document文
2016-10-20 09:57:52
2876
原创 iOS:PCH文件的使用
PCH文件全称Precompile Header File.也就是预编译头文件的意思.PCH主要有三个作用:1.放一些公用的宏定义.(一个宏可能在多个控制器都会用到,正常需要在每个控制器都写一次,但是将宏定义写在PCH文件中只需要写一次就可以了)2.把公共的model类#import导入写到PCH文件中.(一个model可能在多个控制器都会需要导入它的头文件,将#import写在P
2016-10-08 13:54:38
579
原创 iOS:AlerView、ActionSheet和AlertController的简单使用
AlertView的使用:AlerView的样式://alertView代理方法 监听确定按钮的点击- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ if (buttonIndex == 1) { MCHeroModel *model =
2016-09-03 22:29:08
6655
原创 iOS:九宫格算法
九宫格算法的目的就是实现下图所示的布局效果找规律:0号控件的x = 横向间距 + 0 * (控件宽度 + 横向间距)1号控件的x = 横向间距 + 1 * (控件宽度 + 横向间距)2号控件的x = 横向间距 + 2 * (控件宽度 + 横向间距)规律:n号控件的x = 横向间距 + 列数 * (控件宽度 + 横向间距)0号控件的y = 纵向间距
2016-08-28 20:33:55
1159
原创 iOS:git的使用之Xcode
先在git.oschina.net网站上创建一个远程仓库然后来到终端使用cd命令进入到一个空的文件夹使用 git clone 远程仓库地址 命令从远程仓库拷贝在拷贝下来的文件里创建一个Xcode工程,这个时候就可以开始写代码了点击Xcode工具栏中的Source Control栏可以看见源码控制的各种选项点击commit可以将代码推送到本地仓库,之后点击push
2016-08-22 15:28:23
1484
原创 iOS:git终端命令的简单使用
git是一种分布式代码管理工具.再说git的使用之前需要先讲一下git的结构除了远程仓库以外,每一个开发者本机都有一个本地的仓库,当提交代码的时候需要先将代码提交到本地的仓库,然后再提交到远程仓库.准备工作:在使用git的时候会生成一个.git的不可见文件,需要在控制台中输入defaults write com.apple.finder AppleShowAllFiles -boo
2016-08-21 12:47:00
2413
原创 iOS:KVO的简单使用及其本质
KVO全称Key-Value Observer. 是观察者设计模式的一种实际应用.KVO的操作对象是对象.简单使用:现在创建一个Person类,Person类中有一个age属性,当点击按钮的时候改变age属性的值#import "ViewController.h"#import "Person.h"@interface ViewController ()@prope
2016-08-19 12:39:53
445
原创 iOS中使用int类型会出现的问题和解决办法
首先我们创建一个Person类,里面写name和age两个属性,age先用int来修饰.#import @interface Person : NSObject@property(nonatomic,copy)NSString *name;@property(nonatomic,assign)int age;@end然后在控制器中创建一个Person对象,再用KVC对nam
2016-03-25 15:48:23
4412
原创 iOS中JPG PNG GIF格式图片的区分
很多时候我们从网络上下载或者本地的图片有很多格式,那么我们如何在程序中对这些格式的图片进行分类处理呢?在Xcode中选中图片 点击右键选择Open As Hex (Hex是十六进制的意思)JPG格式开头为FF PNG格式开头为89 GIF格式开头为47JPG格式PNG格式GIF格式SDWebImage中是这么处理的
2016-03-25 10:46:32
1583
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人