
UI
文章平均质量分 80
-FIGHTING-
这个作者很懒,什么都没留下…
展开
-
ios-后台播放音乐
iOS后台播放音乐1、在Info.plist中,添加"Required background modes"键,其值设置如下图所示:App plays audio or streams audio/video using AirPlay2、添加AVFoundation框架,然后再添加如下两段代码添加后台播放代码(AppDelegate): 1 //后原创 2015-09-30 21:57:22 · 1895 阅读 · 0 评论 -
ios-打电话
ios 中实现打电话的功能是很简单的 我们可以使用两种方式实现打电话 但是我们有一点需要注意的是如果我们使用系统提供的那种打电话的方式会出现一种状况 电话播出之后 无法回到我们的应用界面 这个给出了解决方案 我们可以借助webView来只实现 打电话之后回到应用界面 请看下面代码:#import "ViewController.h"@interface ViewCont原创 2015-10-05 21:18:46 · 428 阅读 · 0 评论 -
ios-新浪微博开发07-自定义搜索框
先给出封装之前的代码 用的是系统原生的搜索框 但是不符合我们的要求 所以我们要定制自己的搜索框比较方便使用#import "QHDiscoverViewController.h"#import "QHSearchBar.h"@interface QHDiscoverViewController ()@end@implementation QHDiscoverViewCo原创 2015-09-16 20:47:29 · 1350 阅读 · 0 评论 -
ios-发送信息的两种方式
//简单的实现ios 中发送邮件的功能 两种方式实现发送邮件 详细看代码 代码不难 很容易理解#import "ViewController.h"//导入#import @interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super vi原创 2015-10-05 23:40:00 · 591 阅读 · 0 评论 -
ios-发送邮件两种方式实现
代码的思路很清晰 比较简单#import "ViewController.h"//导入#import @interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional set原创 2015-10-05 23:54:30 · 616 阅读 · 0 评论 -
二维码扫描-zbar的使用
最近在做的项目中需要用到二维码扫描功能ZXing也有对应的iOS版本,经过了解,ZBar也是一个常用的二维码识别软件,并分别提供了iOS和Android的SDK可供使用,最终我选择了ZBar进行二维码识别,它的注释清晰,便于使用。 ZBar为我们提供了两种使用方式,一种是直接调用ZBar提供的ZBarReaderViewController打开一个扫描界面,另一种方式 是使用ZBa原创 2015-10-06 00:17:04 · 1947 阅读 · 0 评论 -
使用系统提供的AVFoundation 实现二维码扫描(带动画)
注意这里的扫描必须真机测试 模拟器上是看不出来效果的 #import "ViewController.h"#import @interface ViewController ()//输入和输出设备的桥梁@property (nonatomic, strong) AVCaptureSession *session;/** * */@property (non原创 2015-10-06 00:35:03 · 2305 阅读 · 0 评论 -
ViewController生命周期
ViewController生命周期中有那么多函数,一个重要问题就是什么代码该写在什么地方。1、init里不要出现创建view的代码。良好的设计,在init里应该只有相关数据的初始化,而且这些数据都是比较关键的数据。init里不要掉self.view,否则会导致viewcontroller创建view。(因为view是lazyinit的)。2、loadView中只初始化view,一原创 2015-10-06 01:18:55 · 359 阅读 · 0 评论 -
ios开发-新浪微博-09(下拉菜单封装一)
我们要对下来菜单封装 首先我们要考虑三件事情1.创建下拉菜单2.设置内容3.显示 4.销毁 根据以上的需求 我们按照步骤完成即可 这里先对下拉菜单进行了初步的封装 #import @interface QHDropdownMenu : UIView+(instancetype)menu;@property(nonatomic,strong原创 2015-09-16 20:58:13 · 745 阅读 · 0 评论 -
ios开发-坐标系转换
#import "ViewController.h"@interface ViewController ()@property(nonatomic,weak)UIView *blue;@property(nonatomic,weak)UIView *red;@property(nonatomic,weak)UIView *yellow;@property(nonatomic,weak原创 2015-09-16 21:28:06 · 415 阅读 · 0 评论 -
ios-两个应用之间的跳转
这里实现 手机上两个应用之间的跳转 我们可以模拟一下两个应用之间的跳转 我们需要新建两个应用 每个应用需要在info.plist中设置scheme 的值 用openURL 的方法实现应用之间的跳转 这个方法非常强大 可以打开任何app 必须有scheme #import "ViewController.h"@interface ViewController ()- (原创 2015-10-05 17:37:15 · 681 阅读 · 0 评论 -
ios开发-新浪微博11-(自定义tabbar)
如果我们想用系统的tabar 又想自定义的怎么办?我们可以有多中方法实现 一种方法可以继承UIVIew 这样tababar 的所有内容都是自定义 我们可以实现我们想要的效果第二种我们继承自UITabBar重写- (void)layoutSubviews 方法 可以实现自定义 这里要注意我们应该先调用 [super layoutSubviews];父类的方法 然后原创 2015-09-16 21:17:02 · 843 阅读 · 0 评论 -
ios-新浪微博(5)设置导航栏主题
#import "QHNavigationController.h"@interface QHNavigationController ()@end@implementation QHNavigationController//设置导航栏的主题 用了下面的一种新方法 :+(void)initialize{ //[UINavigationBar appeara原创 2015-09-15 08:11:34 · 1259 阅读 · 0 评论 -
ios- 地图路线规划
地图路线的绘制是很复杂的 我们需要包装很多结构体 一层接一层 1.首先我们要给出两个位置 起点和终点 的经纬度 2.给出起点和终点的详细信息 3.包装 起点的节点 和终点的节点 4.进行路线请求 5.发送请求 6.计算 我们可以取出路线 添加大头针和遮盖物来显示我们 起点和终点之间是怎么样连线的要实现系统的代理方法 画线条 #import "ViewC原创 2015-09-30 20:46:50 · 3124 阅读 · 3 评论 -
ios-系统音频播放
虽然代码不长 但是还是分开总结 方便初学者学习 #import "ViewController.h"/** * 首先要导入头文件 * * @param void * * @return */#import @interface ViewController ()@end@implementation ViewController- (void)vie原创 2015-09-30 21:35:54 · 388 阅读 · 0 评论 -
ios开发 -新浪微博(4)封装item 添加分类
为了更好的仿照苹果的原生代码风格 之前封装item是写了一个工具类 现在改为一个分类 这样用起来更方便#import @interface UIBarButtonItem (Extension)+(UIBarButtonItem *)itemWithTarget:(id)target Action:(SEL)action image:(NSString *)image highImage原创 2015-09-15 08:06:57 · 384 阅读 · 0 评论 -
ios-九宫格布局
UI 布局很重要 现在iOS学习的同学很多 为了帮助大家尽快的入门 博客中会穿插一些简单的例子 虽然例子简单 但是原理很重要 工作中我们是一个工程师 而不是一个码农 做代码的搬运工 在工作中 很多人会感觉很累 因为自己每天都在写一些重复的代码 这里垃圾代码给自己造成了很大的麻烦 加班加点 使项目维护起来很困难 自己跳槽之后 给后面的新同事留下的也是坑 所有我们的原创 2015-09-30 21:46:04 · 1759 阅读 · 0 评论 -
新浪微博开发-(6)自定义搜索框
系统提供的搜索框太大 不符合我们项目开发的要求 所以我们应该定制 自定义搜索框以满足我们的需求#import "QHDiscoverViewController.h"@interface QHDiscoverViewController ()@end@implementation QHDiscoverViewController- (void)viewDidLoad {原创 2015-09-16 09:51:39 · 592 阅读 · 0 评论 -
二维码的生成
二维码的生成比较简单 我们使用了一个三方库 这个三方库是纯C写的 内部实现比较复杂 但是我们使用起来非常方便一行代码搞定 我们需要三方库是 libqrencode 这个可以从github上下载 下面简单的实现一下 #import "ViewController.h"#import "QRCodeGenerator.h"@interf原创 2015-10-05 17:59:43 · 495 阅读 · 1 评论 -
造成程序闪退的bug
例子很简单 大家可以自己分析一下#import "ViewController.h"@interface ViewController ()@property (nonatomic, weak) UITableView *tableView;@end@implementation ViewController- (UITableView *)tableView{ i原创 2015-10-19 19:10:02 · 2341 阅读 · 0 评论 -
ios开发-新浪微博08-下拉菜单的基本实现
#import "QHHomeViewController.h"@interface QHHomeViewController ()@end@implementation QHHomeViewController- (void)viewDidLoad { [super viewDidLoad]; //这时self.view.window 值为空原创 2015-09-16 20:52:40 · 1072 阅读 · 0 评论 -
自定义控件-PickerView
#import "ViewController.h"#import "QHFlag.h"#import "QHFlagView.h"@interface ViewController ()@property (nonatomic, strong) NSArray *flags;@end@implementation ViewController- (NSArray *)f原创 2015-10-06 14:06:31 · 442 阅读 · 0 评论 -
ios开发-新浪微博10-(下拉菜单的二次封装 完整版)
为了供大家的参考学习特意将每个知识点 分开列出 注意这里的封装 我们对下拉菜单的 大小 内容大小 位置 都进行了改进 可以传入个UI控件 也可以传入一个控制器 当下拉菜单弹出的时候 要遮盖一层 将菜单意外界面 事件屏蔽 当点击空白处 下拉菜单收回 这里用到了转换坐标系 这个知识点在后面也会讲解到 #import @interface QH原创 2015-09-16 21:09:41 · 1382 阅读 · 0 评论 -
ios-新浪微博开发-22-封装标题按钮
#import "QHTitleButton.h"@implementation QHTitleButton- (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) {// self.imageView.contentMode = UIViewConte原创 2015-09-20 21:51:04 · 354 阅读 · 0 评论 -
ios-新浪微博开发-24-字典转模型(1)
//用户模型#import /** * id int64 用户UID idstr string 字符串型的用户UID screen_name string 用户昵称 name string 友好显示名称 province int 用户所在省级ID city int 用户所在城市ID location string 用户所在地 descriptio原创 2015-09-20 21:55:24 · 435 阅读 · 0 评论 -
ios-新浪微博开发-25-字典转模型(2)
#import /** * id int64 用户UID idstr string 字符串型的用户UID screen_name string 用户昵称 name string 友好显示名称 province int 用户所在省级ID city int 用户所在城市ID location string 用户所在地 description strin原创 2015-09-20 21:57:37 · 444 阅读 · 0 评论 -
ios-新浪微博开发20-控制器的切换
#warning 面向字典开发很麻烦 我们最好把字典转为模型 #import "AppDelegate.h"#import "QHTabbarViewController.h"#import "QHNewfeatureViewController.h"#import "QHOAuthViewController.h"#import "QHAccount.h"#import "QHA原创 2015-09-20 21:44:30 · 430 阅读 · 0 评论 -
ios-新浪微博开发-23-加载微博数据
#import "QHHomeViewController.h"#import "QHDropdownMenu.h"#import "QHTitleMenuTableViewController.h"#import "AFNetworking.h"#import "QHAccountTool.h"#import "QHTitleButton.h"#import "UIImageView原创 2015-09-20 21:52:33 · 652 阅读 · 0 评论 -
ios-新浪微博开发-18-(授权存储账号信息)用归档实现
#import #warning 这里必须遵守协议 不然不知道对象中的哪些属性写进沙盒@interface QHAccount : NSObject // 返回值字段 字段类型 字段说明 /** string 用于调用access_token,接口获取授权后的access token。*/@property(nonatomic,copy)NSString * access_原创 2015-09-20 21:39:05 · 756 阅读 · 0 评论 -
iOS-新浪微博开发-26-下拉刷新
在这里使用的是苹果系统原生的下拉刷新控件 用起来很简单 上代码 和大家一起分享 但是苹果没有为我们提供上拉刷新的控件 #import "QHHomeViewController.h"#import "QHDropdownMenu.h"#import "QHTitleMenuTableViewController.h"#import "AFNetworking.h"#原创 2015-09-20 22:01:21 · 835 阅读 · 0 评论 -
iOS-归档模型创建和工具类的封装
数据的存储方式有好多种 plist NSUserDefault CoreData fmdb 归档 这些方式各自有优缺点 如果我们存储数据量小的数据 可以使用归档和 NSUserDefault 今天讲解一个知识点 归档的使用 这里是为实现了一个功能 用户登录和注册 我们将信息保存起来 下次打开应用程序 直接从沙盒中读取比对判断 十分方便 这里封装了一个用户模型原创 2015-10-16 08:47:21 · 1164 阅读 · 0 评论 -
判断网络状态公共类
#import @interface Utility : NSObject/** * 判断是否有网络,YES表示有 * * @return */+ (BOOL)isNetWorkReachility;@end#import "Utility.h"#import "Reachability.h"@implementation Utility/** * 判断原创 2015-10-16 09:12:18 · 546 阅读 · 0 评论 -
ios-新浪微博开发-21-获取用户昵称
#import "QHHomeViewController.h"#import "QHDropdownMenu.h"#import "QHTitleMenuTableViewController.h"#import "AFNetworking.h"#import "QHAccountTool.h"//https://api.weibo.com/2/users/show.json@i原创 2015-09-20 21:48:09 · 1187 阅读 · 0 评论 -
ios-新浪微博开发19-账号存储工具类
#import @class QHAccount;@interface QHAccountTool : NSObject/** * 存储账号信息 * * @param account */+ (void)saveAccount:(QHAccount *)account;/** * 返回账号信息 * * @return 账号模型(如果账号过期,返回nil); *原创 2015-09-20 21:42:15 · 440 阅读 · 0 评论 -
ios开发-新浪微博12-(标题按钮的箭头上下翻转)
#import "QHHomeViewController.h"#import "QHDropdownMenu.h"#import "QHTitleMenuTableViewController.h"@interface QHHomeViewController ()@end@implementation QHHomeViewController- (void)viewDidL原创 2015-09-16 21:23:53 · 4201 阅读 · 0 评论 -
ios-新浪微博开发-13-新特性(1)
一款正式的软件 发过 应该具备新特性 我们可以通过设置新特性让用户了解到我们软件的一些新特性 下面简单来实现一下供大家参考#warning 没有设置代理 ->_->#import "QHNewfeatureViewController.h"#define QHNewfeatureCount 4@interface QHNewfeatureViewController原创 2015-09-18 20:08:16 · 427 阅读 · 0 评论 -
ios-新浪微博开发-15(新特性3)
代码注释写的很详细 #import "QHNewfeatureViewController.h"#import "QHTabbarViewController.h"#define QHNewfeatureCount 4@interface QHNewfeatureViewController ()@property(nonatomic,weak)UIPageControl *pa原创 2015-09-18 20:17:08 · 433 阅读 · 0 评论 -
ios-新浪微博开发-(使用AFN三方库出现的错误总结)
我利用AFN 想新浪发送post请求会出现上面一个错误 这个错误很常见 报错:AFN 不能接受服务器返回的内容 @“text/plain”我们先分析一下 再给出解决方案 首先AFN 默认接受的是一个jason字符串 但是新浪给我们返回的却是是一个jeson 字符串我们上官方的开发者平台 查找 新浪给我们提供的信息 我们可以看到 却是返回的是jason原创 2015-09-18 21:17:44 · 531 阅读 · 0 评论 -
ios-新浪微博开发-14(新特性2)
在上次的基础上进行代码的修改#import "QHNewfeatureViewController.h"#define QHNewfeatureCount 4@interface QHNewfeatureViewController ()@property(nonatomic,weak)UIPageControl *pageControl;@end@implementatio原创 2015-09-18 20:10:39 · 521 阅读 · 0 评论 -
ios-控件不显示的问题 总结
/** * 一个控件用肉眼看不见 1.根本就没有创建(没有实例化) 2.没有设置尺寸 3.控件的颜色可能跟父控件的背景色一样(实际上已经显示了) 4.透明度alpha 5.hidden = YES; 6.没有添加到父控件中 7.被其他控件挡住了 8.位置不对 9.再次检查superView 是否原创 2015-09-18 20:12:44 · 3316 阅读 · 0 评论