首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
[iOS微博项目 - 1.5] - NavigationBar标题按钮
】的更多相关文章
[iOS微博项目 - 1.5] - NavigationBar标题按钮
A.NavigationBar标题按钮 1.需求 在“首页”的导航栏中部设置一个“首页”文字+箭头按钮 统一设置样式 根据实际文本长度调整宽度 消除系统自带的点击高亮效果 点击按钮,箭头上下颠倒 github: https://github.com/hellovoidworld/HVWWeibo 2.思路 使用UIButton,设置文本和图片 在initWithFrame统一样式 创建一个继承UIButton的自定义类,重写文本和图片的绘图方法,互换位置 设置一个标识成员变量,判断当前的…
[iOS微博项目 - 3.4] - 获取用户信息
github: https://github.com/hellovoidworld/HVWWeibo A.获取用户信息 1.需求 获取用户信息并储存 把用户昵称显示在“首页”界面导航栏的标题上 2.思路 使用微博API 将用户信息封装到HVWUser模型中 把获取的用户名存放到账户信息HVWAccountInfo模型中存储到沙盒 3.实现 // HVWHomeViewController.m /** 获取用户信息 */ - (void) setupUserInfo { // 设置…
[iOS微博项目 - 1.4] - 各种item NavigationBar & NavigationItem & BarButtonItem || TabBar & TabBarItem
一.UINavigationItem1> 获得方式self.navigationItem // self是指控制器2> 作用可以用来设置当前控制器顶部导航栏的内容// 设置导航栏中间的内容self.navigationItem.titleself.navigationItem.titleView二.UIBarButtonItem1> 用在什么地方// 设置导航栏左上角的内容self.navigationItem.leftBarButtonItem// 设置导航栏右上角的内容self.na…
[iOS微博项目 - 3.1] - 发微博界面
github: https://github.com/hellovoidworld/HVWWeibo A.发微博界面:自定义UITextView 1.需求 用UITextView做一个编写微博的输入框 没有输入任何文本的时候显示占位文本 统一占位文本和正文的字体 2.思路 系统自带的输入控件有UITextField和UITextView两种 UITextField:自带占位文本属性,不能换行 UITextView:没有占位文本属性,能换行 这里我们选择UITextView进行改造 根据是…
[iOS微博项目 - 1.0] - 搭建基本框架
A.搭建基本环境 github: https://github.com/hellovoidworld/HVWWeibo 项目结构: 1.使用代码构建UI,不使用storyboard AppDelegate: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for cus…
[iOS微博项目 - 4.5] - 每条微博的底部工具条
github: https://github.com/hellovoidworld/HVWWeibo A.每条微博的底部工具条 1.需求 每条微博底部都有一个工具条 显示3个按钮:评论.转发.赞 按钮间用分割线隔开 有评论数.转发数.赞数的时候显示相应数据,没有则显示文本 2.思路 (略) 3.实现 (1)微博数据模型中已经带有了相应数据字段 // HVWStatus.h /** int 转发数 */ @property(nonatomic, assign) int repost…
[iOS微博项目 - 3.6] - 获取未读消息
github: https://github.com/hellovoidworld/HVWWeibo A.获取登陆用户未读消息 1.需求 获取所有未读消息,包括新微博.私信.@.转发.关注等 把未读消息数显示在相应的tabItem上 把总的未读消息数显示在app图标上 当app进入后台,仍然需要刷新未读消息数量数据 读取了未读消息之后清空计数 监听tabBarItem的点击,刷新数据(例如重复点击"首页"要刷新微博) 2.思路 使用微博提醒API获取未读消息 使用定时器…
[iOS微博项目 - 3.0] - 手动刷新微博
github: https://github.com/hellovoidworld/HVWWeibo A.下拉刷新微博 1.需求 在“首页”界面,下拉到一定距离的时候刷新微博数据 刷新数据的时候使用控件提示 新数据要加在旧数据的前面 刷新完毕隐藏刷新控件 刷新数据完毕,导航栏下方弹出一个提示框,提示刷新微博数量 2.思路 直接使用系统自带的UIRefreshControl就可以做出动画效果 使用微博的获取微博API参数since_id可以控制加载的微博从哪个id开始 使用可变数组来拼接新…
[iOS微博项目 - 1.7] - 版本新特性
A.版本新特性 1.需求 第一次使用新版本的时候,不直接进入app,而是展示新特性界面 github: https://github.com/hellovoidworld/HVWWeibo 2.思路 [[NSBundle mainBundle] infoDictionary]取得当前版本号(最新版本),版本号存储在了info.plist中 从preference取得上一次使用的版本号 将讲个版本号进行对比,如果相同就是当前是最新版本,直接进入app:如果不相同,就进入新特性界面并保存…
[iOS微博项目 - 1.6] - 自定义TabBar
A.自定义TabBar 1.需求 控制TabBar内的item的文本颜色(普通状态.被选中状态要和图标一致).背景(普通状态.被选中状态均为透明) 重新设置TabBar内的item位置,为下一步在TabBar中部添加“+”按钮做准备 github: https://github.com/hellovoidworld/HVWWeibo 系统默认样式: 选中时item字体颜色为蓝色 完成之后的样式: 2.思路 封装TabBar,继承UITabBar,重写有关TabBar内部控件的…
[iOS微博项目 - 1.2] - 导航栏搜索框
A.导航栏搜索框 1.需求 在“发现”页面,在顶部导航栏NavigationBar上添加一个搜索框 左端带有“放大镜”图标 github: https://github.com/hellovoidworld/HVWWeibo 2.思路 使用UISearchBar: 简单易用,但是样式死板不能定制(此处UISearchBar的背景色容易和导航栏的背景色混淆),而且在iOS6和iOS7上会产生不同的样式. 使用UITextField创建:继承或者扩展UITextField,设置背景图和左端图…
[iOS微博项目 - 1.1] - 设置导航栏主题(统一样式)
A.导航栏两侧文字按钮 1.需求: 所有导航栏两侧的文字式按钮统一样式 普通样式:橙色 高亮样式:红色 不可用样式:亮灰 阴影:不使用 字体大小:15 github: https://github.com/hellovoidworld/HVWWeibo 2.实现效果 默认样式: 统一使用样式: 3.思路 在创建item的时候逐个设置:代码超级冗余 抽取创建公共父类:稍好的选择,但是继承了此公共父类的控制器,就不能操作其去继承系统自带的控制器类了,造成很大的隐患.iOS中控制器不建…
[iOS微博项目 - 4.0] - 自定义微博cell
github: https://github.com/hellovoidworld/HVWWeibo A.自定义微博cell基本结构 1.需求 创建自定义cell的雏形 cell包含:内容.工具条 内容包含:原创内容.转发内容 2.思路 使用分层控件,逐层实现 分离model和view model:数据模型.frame模型 view:就是控件本身 frame模型:包含数据模型和子控件frame 根据数据模型来决定子控件是否显示(例如转发内容) cell的view设计雏形: 控件的…
[iOS微博项目 - 3.2] - 发送微博
github: https://github.com/hellovoidworld/HVWWeibo A.使用微博API发送微博 1.需求 学习发送微博API 发送文字微博 发送带有图片的微博 2.思路 直接按照微博API的文档指示使用 这里测试上传带图片微博 3.实现 在"发微博"界面,点击右上角发送就调用API // HVWComposeViewController.m /** 发送微博 */ - (void) sendWeibo { ) { [MBProg…
[iOS微博项目 - 2.6] - 获取微博数据
github: https://github.com/hellovoidworld/HVWWeibo A.新浪获取微博API 1.读取微博API 2.“statuses/home_timeline”接口 B.在app中获取微博数据 1.在“首页”控制器发送请求,获取json数据 /** 加载微博数据 */ - (void) loadWeiboData { // 创建AFNetworking的http操作中管理器 AFHTTPRequestOperationManager…
[iOS微博项目 - 2.3] - 用户取消对app的授权
github: https://github.com/hellovoidworld/HVWWeibo A.用户取消对app的授权 用户可以在微博网站上取消对某个应用(app)的授权 1.打开"我的应用" 2.删除掉要取消授权的app 这样下次登陆会要求重新授权 …
[iOS微博项目 - 2.0] - OAuth授权3步
A.概念 OAUTH协议为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的.oAuth是Open Authorization的简写. B.使用3步骤 OAUTH认证授权就三个步骤,三句话可以概括: 1. 获取未授权的Request Token 2. 获取用户授权的Request Token 3.…
[iOS微博项目 - 4.6] - 微博配图
github: https://github.com/hellovoidworld/HVWWeibo A.微博配图 1.需求 显示原创微博.转发微博的缩略图 4张图使用2x2布局,其他使用3x3布局,最多9张 点击小图放大图片,下载中等图片并显示,使用动画转换 如果是gif文件,在缩略图上加上"gif"标识 2.思路 开始就在微博正文下方创建一个配图区view,创建好9个配图子view 使用一个黑色背景的view来充当大图背景遮盖 使用点击手势唤出大图.缩回大图 3.实现…
[iOS微博项目 - 4.4] - 会员标识
github: https://github.com/hellovoidworld/HVWWeibo A.会员标识 1.需求 给vip会员打上会员标识 不同等级的vip会员使用不同的标识 使用橙色作为昵称颜色 2.思路 返回的user数据中有两个字段 mbrank:int 会员等级 mbtype:int 会员类型,大于2才是会员 3.实现 依照之前的做法,在微博内容界面加上一个ImageView作为vip标识 创建相应的frame (1)在user模型加上vip相关字段 // /…
[iOS微博项目 - 4.3] - 设置每条微博边框样式
github: https://github.com/hellovoidworld/HVWWeibo A.设置每条微博边框样式 1.需求 不需要分割线 每个微博之间留有一定的间隙 2.思路 直接设置分割线样式为none就可以去除分割线 设置tableView的背景色 让每个cell的y值下移10个单位,做出间隙效果 使用资源包内的背景图片类填充cell背景 3.实现 (1)去除默认分割线 // HVWHomeViewController.m - (void)viewDidLoad { […
[iOS微博项目 - 4.2] - 设置转发微博背景
github: https://github.com/hellovoidworld/HVWWeibo A.转发微博部分的淡灰色背景 1.需求 转发微博部分需要设置背景色 使用图片作为背景 2.思路 方法有: 直接设置view的背景图片,使用UIColor的平铺图片 实现view的drawRect方法,拉伸背景图片(把背景图片画到整个view上) 令转发微博view继承ImageView,直接设置图片,这样还可以设置高亮图片 3.实现 (1)直接设置backgroundColor,平铺图片…
[iOS微博项目 - 4.1] - cell的frame模型
github: https://github.com/hellovoidworld/HVWWeibo A.cell的frame模型设计 1.需求 每个cell都有一个frame实例引用 frame模型用来存储数据模型.设置子控件位置尺寸 2.思路 frame模型同时包含了数据模型和子控件的frame实例引用 跟view设计一样,也是采用分层设计 每个view都有一个自己的frame模型 view层次: 每个view对应一个frame: 3.实现 (1)view // // H…
[iOS微博项目 - 3.5] - 封装业务
github: https://github.com/hellovoidworld/HVWWeibo A.封装微博业务 1.需求 把微博相关业务(读取.写微博) 界面控制器不需要知道微博操作细节(例如选择从网络读取还是缓存读取) 2.实现 把微博操作封装成一个工具类 把微博网络请求的参数和返回结果也封装成一个类 3.实现 (1)基础参数类 由于多数请求都需要access_token,所以封装一个参数父类 // // HVWBaseParam.h // HVWWeibo //…
[iOS微博项目 - 3.3] - 封装网络请求
github: https://github.com/hellovoidworld/HVWWeibo A.封装网络请求 1.需求 为了避免代码冗余和对于AFN框架的多处使用导致耦合性太强,所以把网络请求封装成自己的工具类,以后便于更换网络框架. 2.思路 创建一个自定义工具类,提供类方法来实现网络请求 3.实现 // // HVWNetworkTool.h // HVWWeibo // // Created by hellovoidworld on 15/2/9. // Copyri…
[iOS微博项目 - 2.5] - 封装授权和用户信息读写业务
github: https://github.com/hellovoidworld/HVWWeibo A.封装授权业务 1.把app的授权信息移动到HVWWeibo-Prefix.pch中作为公共宏 // 授权信息 #define HVWAppKey @"3942775926"; #define HVWAppSecret @"cc577953b2aa3aa8ea220fd15775ea35" #define HVWGrantType @"authori…
[iOS微博项目 - 2.4] - 重新安排app启动步骤
github: https://github.com/hellovoidworld/HVWWeibo A.app启动步骤 1.加入了授权步骤之后,最先要判断app内是否已经登陆了账号 2.在程序启动的时候,先检测是否已有登陆账号 AppDelegate: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Overri…
[iOS微博项目 - 2.2] - 在app中获取授权
github: https://github.com/hellovoidworld/HVWWeibo A.发送授权请求 1.使用UIWebView加载请求页面 自定义一个继承UIViewController的HVWOAuthViewController // // HVWOAuthViewController.m // HVWWeibo // // Created by hellovoidworld on 15/2/4. // Copyright (c) 2015年 hellovoidwor…
[iOS微博项目 - 2.1] - 获得新浪授权接口
A.如何获得新浪的授权接口 登陆新浪的开放平台 注册新浪账号 创建应用 获得应用id和请求地址 查阅相关API 关联需要进行测试的账号 1.登陆开放平台 http://open.weibo.com 2.注册账号 (略) 3.创建应用 4.填写开发者资料 5.创建应用 5.取得应用的App Key和App Secret B.新浪微博API 1.OAuth授权API 上面的redirect_uri也是必填参数,需要在"我的应用&…
[iOS微博项目 - 1.8] - 各种尺寸图片加载 & 控件不显示研究
A. 图片的加载: [UIImage imageNamed:@"home"]; 加载png图片 一.非retina屏幕 1.3.5 inch(320 x 480) * home.png 二.retina屏幕 1.3.5 inch(640 x 960) * home@2x.png 2.4.0 inch(640 x 1136) * home-568h@2x.png(如果home是程序的启动图片,才支持自动加载) 三.举例(以下情况都是系统自动加载) …
[iOS微博项目 - 1.3] - 内容对齐 TextAlignment & VerticalAlignment & HorizontalAlignment & contentMode
四个容易混淆的属性:1. textAligment : 文字的水平方向的对齐方式1> 取值NSTextAlignmentLeft = 0, // 左对齐NSTextAlignmentCenter = 1, // 居中对齐NSTextAlignmentRight = 2, // 右对齐2> 哪些控件有这个属性 : 一般能够显示文字的控件都有这个属性* UITextField* UILabel* UITextView2. contentVerticalAli…