iOS开发Swift篇—(四)运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运算符:++.-- 比较运算符:==.!=.>.<.>=.<= 逻辑运算符:&&.||.! 三目运算符:? : 范围运算符:..< .... 溢出运算符:&+.&-.&*.&/.&% 2.赋值运算符 (1)1对1赋值 var a =…
创了一个XMPP即时通讯交流群140147825,欢迎大家来交流~我们是一起写代码的弟兄~ 前面几篇,我们讨论了环境的配置,框架的导入和用户登陆,这一篇我们来说说好友模块. 在进入正题之前,我们来说下调试. 首先,打开偏好设置,看一下Openfire服务器和MySQL是否打开,记得先打开MySQL,再打开Openfire,随后,点击Open Admin ConConsole, 出现下面的页面,就成功了. 输入用户名和密码,登录,出现这个界面: 随后,点击导航栏上的“用户/组”,出现了用户和聊天组…
在上一篇博客中<iOS开发之窥探UICollectionViewController(三) --使用UICollectionView自定义瀑布流>,自定义瀑布流的列数,Cell的外边距,Cell的最大以及最小高度是在我们的布局文件中是写死的,换句话说也就是不可配置的.为了循序渐进,由浅入深呢,上篇博客暂且那么写.不过那样写太过死板,本来使用起来比较灵活的自定义布局,如果把其配置参数给写死了,就相当于在笼中的猛兽,再厉害不也白扯蛮. 在今天这篇博客中我们要接着上篇博客中的Demo,使其自定义布局…
 UIWebView是ios开发中比较常用的一个控件.我们可以用它来浏览网页.打开文档等,今天笔者在这里简单介绍下UIWebView和UISearchBar结合起来的用法,做一个简单的类浏览器. 一:首先定义这两个控件,并在.h文件中实现UISearchBarDelegate,UIWebViewDelegate两个代理 @interface TestView : UIViewController<UISearchBarDelegate,UIWebViewDelegate> @property(…
前言:本文篇幅不多,但是涉及到的内容却是开发中常用的. 涉及的内容: 1.统一设置导航控制器子控制器的返回按钮. 2.因为修改了系统的返回按钮,所以还需要设置手势事件. 3.隐藏底部的工具条. 这里直接给出.m的实现文件,.h文件不需要,因为没有属性,没有自定义公开的方法. #import "YMNavigationController.h" @interface YMNavigationController () <UIGestureRecognizerDelegate>…
需求详解: 在实际开发中,有可能是在后期优化的时候,会有这么需要优化的需求:聊天输入框保存之前输入的文本,提高用户的良好体验. 在聊天模块中,用户可能会在输入框输入若干字符,但是没有点击发送就点击退出聊天,或者要点击用户头像确认用户的信息,或者比如需要向好友发送另一个好 友的ID不得不暂时退出当前好友聊天界面跳转找到别的界面找ID,然而当前聊天输入框也已经输入好了若干字符,用户当然不希望退出之后就删除之前输入好的 文字.所以这里就需要暂时保存用户输入好的但是没有发送出去的字符串. 但是,还需要满…
在开发向苹果Apns推送消息服务功能,我们需要根据Apns接受的数据格式进行推送.下面接受我在进行apns推送时候总结的一点apns服务接受的Json数据格式 示例 1: 以下负载包含哦一个简单的 aps 字典.它使用字符串而不是字典作为 alert 的值,该负载同样包含了一个自定义的属性数组. { "aps" : { "alert" : "message" },//alert表示推送的消息文本 "parm" : [ &quo…
前言:好久没写博客,今天来一波.我在实际项目开发中,会遇到这样功能需求:我已经搭好了iOS的UI界面,但是很多界面的子View用了UIView,然后这些UIView中用了UILabel和UIImageView,然后接着需求要这些View能够有点击事件,比如一点击就跳转到某个控制器.一开始懵逼了,难道我还要把他们全部改成UIButton,但是UIButton不好添加子View,难道我还要全部自定义一下UIButton,就算自定义好了,在项目已经打好的界面还是要一个个替换,多麻烦.所以就想到通过UI…
首先上Boss直聘的功能界面截图,至于交互请读者现在Boss直聘去交互体验:     本人的公司项目要高仿Boss直聘的IM常用语的交互功能,居然花费了我前后17个小时完成,这回自己测试了很多遍,代码质量很高,交互很流畅,仿真度也很高,重点综合性的用到了很多东西:runtime.代理传值.block传值.textView的系统通知监听.富文本.自定义封装.本地化增删改等等.其实这些都是基础,重点是功能的交互逻辑或者是业务逻辑的分析,然后正确实现,并经过尽可能多情况的自我测试通过,没有基础Bug,…
这个需求是本人工作开发中后期需求要添加的新功能,本人模仿UITableView的代理和数据源方法进行了第一阶段的开发.第二阶段是添加丰富的动画. 这个功能需求描述:能上传添加五个待选头像,五个头像分别都可以被设置为app的正式头像和展示封面,五个头像分别都可以删除,这个自定义View最后一个正方形提供可以添加图片的功能,每添加一个图片都排列在前面待选头像的后面. 花费时间:半天 完成之后的评价:1.需要优化,在父View是ScrollView或者UITableView的情况下,移动会不断调用la…
下面只展示项目开发中,本地序列化的示例代码: AuthenticationManager.h #import <Foundation/Foundation.h> #import "GrantViewController.h" #import "MUUser.h" #import "RoomEntity.h" #define kNotificationLogoutDone @"kNotification_logout_done…
不管想不想看我后面再开发中总结的经验,但是很值得推荐一位大神写的关于苹果推送,很多内容哦:http://www.cnblogs.com/qiqibo/category/408304.html 苹果开发证书中,有一个根证书,根证书可以绑定相关的开发者设备合作开发一个app项目,如果是多人团队一般根证书是由老大搞定和统一管理我们的设备,这时候老大他会用到他电脑的keychain来生成P12文件,然后并把根证书一并给我们用. 但是,开发苹果推送功能的人不一定是老大,比如老大交给我来弄这个推送证书并给a…
一."Black Magic":Method Swizzling 利用 Runtime 特性把一个方法的实现与另一个方法的实现进行替换,也可以用runtime的四维理解——修改Dispatch Table让一个方法的IMP对应到我们指定的IMP上去 二.实例说明:比如我们想要在APP中记录每一个ViewController的出现次数 三.实例分析: 第一种思路就是在ViewController出现的一瞬间(viewDidAppear)我就用记录工具记录一条日志. @implementa…
ReactiveCocoa常见操作方法介绍: demo地址:https://github.com/SummerHH/ReactiveCocoa.git 1.1 ReactiveCocoa操作须知 所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,而RACSignal继承RACStream. 1.2 ReactiveCocoa操作思想 运用的是Hook(钩子)思想,Hook是一种用于改变API(应用程序编程接口:方法)执行结果的技术. Hook用…
本人公司项目属于社交类,高仿Boss直聘早期的版本,现在Boss直聘界面风格,交互风格都不如Boss直聘以前版本的好看. 本人通过iPhone模拟器和本人真机对聊,将完成的交互功能通过Mac截屏模拟器来录制基本的交互功能. 界面因为动态截图工具本身不完美,截屏失真,所以存在有的部分UI颜色稍微变化了,比如白色稍微变灰暗色,不是项目本身的问题. 因为是本公司项目,不提供源码,只提供交互动态图仅供观赏…
本篇记录关于计算文本高度和Label高度的代码,以备后期再探究: 首先是YouXianMing老师的工具类别: NSString+LabelWidthAndHeight.h // // NSString+LabelWidthAndHeight.h // ZiPeiYi // // Created by YouXianMing on 15/12/9. // Copyright © 2015年 YouXianMing. All rights reserved. // #import <Foundat…
这是个很有用的列别工具类,在聊天对话框添加和QQ一样的"复制.粘贴.取消"等选项,而且使用起来很方便,只要找到聊天泡泡内部的某个View,比如Label或者背景冒泡的UIImageView,直接add...即可实现下面的效果: 直接上源码: UIView+PressMenu.h #import <UIKit/UIKit.h> @interface UIView (PressMenu) @property (strong, nonatomic) NSArray *menuTi…
这里直接用CoreGraphics的一些处理图片的方法,本身不难,但是有些时候用的不多,就会遗忘掉使用方法的细节.下面就直接展示关键源码,以便下次重复需求,就可以立马找回. 该方法中在UIImage的类别拓展里: -(UIImage *)cutCenterSquareImage{ CGSize imageSize = self.size; // 中间最大正方形尺寸 CGRect centerRect; CGFloat centerRectWH; //根据图片的大小计算出图片中间矩形区域的位置与大…
只上项目中用到的代码: 1.实现重写TabBar的TabBarItem,然后在中间额外加一个按钮. #import <UIKit/UIKit.h> @interface BikeTabBar : UITabBar @end #import "BikeTabBar.h" @interface BikeTabBar () //@property (nonatomic,weak)UIButton *centerButton; @end @implementation BikeTa…
1.先介绍一个好用的实现模糊效果的框架:https://github.com/YouXianMing/UIImageBlur 2.iOS8 中 UIVisualEffectView 模糊效果的使用 ,能够实时渲染,但是弊端就是iOS7以下不能用.…
废话不多说,先直接上效果图: 先熟悉一下在Cocoa框架中会用到的key键: 然后直接上Demo的源码截图: 看代码之前,补充说一句,Demo中的文本框以及文本框的背后灰色的View是通过storyboard中的autoresizing布局的. 上面源码下载链接: http://pan.baidu.com/s/1jHXD7eQ 密码: uqww 在OC中,通过 transform 属性可以修改对象的平移.缩放比例和旋转角度. 那么就用transform做一个稍微的优化:…
前言:因为常用,所以我就备份到这里,然后如果需要修改,可以根据需求进行相关的更改. @implementation YMTabBarController - (void)viewDidLoad { [super viewDidLoad]; /**** 初始化一些设置 ****/ [self setUp]; /**** 添加子控制器 ****/ [self addChildViewControllers]; } - (void)setUp{ } #pragma mark - 在load方法里全局设…
之前目录性的总结了发表过的关于OC方面的文章,今天在目录性的总结一下有关iOS开发的文章.走过路过不要错过哦,今天的博文也全都是干货.写技术博客与大家交流一下思想也是不错的. 下面是我的技术博客中有关iOS开发的内容,有初级部分也有高级部分,有旧的东西,也有新的东西.咸蛋就先扯到这儿,正文走起: 我的iOS系列博文如下:   01.iOS开发之简单音频播放器 02.iOS开发之视图和视图控制器 03.iOS开发之绝对布局和相对布局(屏幕适配) 04.iOS开发之自动布局显示网络请求内容 05.i…
文顶顶iOS开发博客链接整理及部分项目源代码下载   网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程却很难找.如果你是初学者,在学习了斯坦福iOS7公开课和跟着文顶顶的博客做项目之后,最快只需要2个月时间,就基本可以独立完成iOS App的开发工作.有经验的开发者也可以在该博客中寻找代码片段进行学习借鉴,必有所收获. 在此也向@文顶顶 表示严重感谢! 由于文顶顶博客博文繁多,每次找文章需要频繁的翻…
原文网址:http://bbs.51cto.com/thread-1099956-1.html 亲爱的学员们: 如今,各路开发者为淘一桶金也纷纷转入iOS开发的行列.你心动了吗?想要行动吗?知道如何做嘛?速来学习由51CTO学院整理的iOS精品视频集,42个视频课程一步步引领你成为一名iOS开发高手! 了解2015年12月23日51CTO学院最新课程整理,请查看15楼回复内容! 点我火速前往>> 学习ios(必看经典)牛人40天精通iOS开发的学习方法 描述 这是一套从一个对iOS开发感兴趣的…
本篇博客应该算的上CollectionView的高级应用了,从iOS开发之窥探UICollectionViewController(一)到今天的(五),可谓是由浅入深的窥探了一下UICollectionView的用法,这些用法不仅包括SDK中自带的流式布局(UICollectionViewDelegateFlowLayout)而且介绍了如何根据你的需求去自定义属于你自己的CollectionView.自定义的CollectionView可谓是非常灵活,其灵活性也决定了其功能的强大.Collect…
前言本文会给大家详细介绍iOS内购,虽然之前网上也有内购的教程,但是还不够详细,我重新整理出一份教程,希望对大家有所帮助.    基于Xcode7.1.1版本,模拟器iphone6,9.1系统.    部分地方直接摘自网络,省时省心省力.    多图预警!!!一. 创建测试App创建App-1首先你需要登录 App的ItunesConnection,你会看到如下界面http://t.cn/Rcj7NesiOS 开发之内购 – AppStore简单的介绍一下这几个选项        1.我的App…
原始地址:XMPPFrameWork IOS 开发(四) 消息 //收到消息 - (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message{ // NSLog(@"message = %@", message); //消息的内容 NSString *msg = [[message elementForName:@"body"] stringValue]; //消息发送…
上篇的博客iOS开发之使用XMPPFramework实现即时通信(一)只是本篇的引子,本篇博客就给之前的微信加上即时通讯的功能,主要是对XMPPFramework的使用.本篇博客中用到了Spark做测试,当然也少不了Openfire服务器,在这就不详述Openfire的安装过程了(网上的教程还是蛮多的),Openfire的安装仅需要一个数据库的支持,本篇是用的MySql数据库.当然这不是本篇的重点. 废话少说,切入今天的正题.今天要给之前的微信加入登陆,获取好友列表,聊天(发送文字,表情,图片,…
原始地址:XMPPFrameWork IOS 开发(六)聊天室 聊天室 //初始化聊天室 XMPPJID *roomJID = [XMPPJID jidWithString:ROOM_JID]; xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:self jid:roomJID]; [xmppRoom activate:xmppStream]; [xmppRoom addDelegate:self delegateQueue:dispatch_ge…