iOS学习--从入门到实战
主要讲解一下我三年来在iOS自学方面的一些知识点总结以及实际项目中遇到的一些重点与难点。
内容涉及到iOS学习的方方面面,如果感兴趣的童鞋可以参考一下。
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
fswy
欲当大事,需是笃实。
展开
-
iOS学习之多线程编程
一个CPU一次只能执行一个命令,不能执行某处分开的并列的两个命令,因此通过CPU执行的CPU命令行就好比一条无分叉的大道,其执行不会出现分歧。 “一个CPU执行的CPU命令列为一条无分叉路径”即为线程. 现在一个物理的CPU芯片实际上有64个(64核)CPU,如果一个CPU核虚拟为两个CPU核工作,那么一台计算机上使用多个CPU核就是理所应当的事了。尽管如此”一个CPU执行的CPU命令列原创 2016-05-31 14:41:01 · 401 阅读 · 0 评论 -
iOS之修改项目BUG之旅--(一)
问题:tableView的group 分组下,第一行cell与导航栏离得太远 解决方法: UITableView 的 cell 默认出现在 uitableview 的第一行,如果你想自定义 UITableViewCell 与导航条间距的话,可以使用下面这行代码tableview.tableHeaderView = [[[UIView alloc] initWithFrame:CGRectMake原创 2016-05-05 09:19:10 · 454 阅读 · 0 评论 -
iOS之修改项目BUG之旅--(二)
问题:各编辑框界面边框四四方方,显得死板 解决方法:将方框边角改为圆角textView.layer.borderColor = [[UIColor colorWithRed:215.0 / 255.0 green:215.0 / 255.0 blue:215.0 / 255.0 alpha:1] CGColor];textView.layer.borderWidth = 1.0f;textVi原创 2016-05-05 13:50:07 · 393 阅读 · 0 评论 -
iOS之修改项目BUG之旅--(三)
问题:在一个图片浏览器放大当前图片的时候,点击删除,出现提示框是否删除图片 解决方案: 一.使用UIAlertView解决(ps:这是ios8以前的方法)//点击事件- (void)photoBrowserButtons:(CHPhotoBrowserButtons *)buttons deleteBtn:(UIButton *)deleteBtn {UIAlertView *alert =原创 2016-05-06 10:37:57 · 757 阅读 · 0 评论 -
iOS之修改项目BUG之旅--(四)
问题:修改密码功能中,密码框 切换明文/密文显示末尾空白的 bug 解决方案:- (IBAction)showPwdButtonClick:(id)sender { self.isCheckOk = !self.isCheckOk; self.pwdOldTextField.secureTextEntry = !self.isCheckOk; NSString* text =原创 2016-05-06 11:00:44 · 401 阅读 · 0 评论 -
iOS之修改项目BUG之旅--(五)
问题:个性签名label内容过长时,自动变长,把前面的label遮盖 解决方案: lineBreakMode:设置标签文字过长时的显示方式。 label.lineBreakMode = NSLineBreakByCharWrapping; //以字符为显示单位显示,后面部分省略不显示。 label.lineBreakMode = NSLineBreakByClipping;原创 2016-05-06 15:35:11 · 470 阅读 · 0 评论 -
iOS之修改项目BUG之旅--(六)
问题:label的text内容过多时,其自适应高度过高,不美观 解决方法:限定label的行数,并设置其过长时内容显示的方式 //设置label行数为1 self.subTitleLabel.numberOfLines = 1; //结尾部分的内容以……方式省略,显示头的文字内容。 self.subTitleLabel.lineBreakMode = NSLineBreakB原创 2016-05-18 10:12:12 · 371 阅读 · 0 评论 -
iOS之修改项目BUG之旅--(七)
问题:要把 “2011-11-29” 改写成 “2011/11/29” 解决方案:一开始想用ios的时间格式,后来用NSString的方法搞定。[string stringByReplacingOccurrencesOfString:@"-"withString:@"/"]; 一句话搞定原创 2016-05-18 16:50:03 · 368 阅读 · 0 评论 -
iOS实战演练之MTA的SDK插入,以及基本功能实现
1 开始嵌入SDK 1.1 获取AppKey 登陆腾讯云分析移动统计前台http://mta.qq.com,点击”查看数据”,选择”注册应用”,按照步骤提示注册应用,即可获得AppKey。 如果应用是通过其他渠道,比如“腾讯移动开放平台”接入腾讯云分析,则会自动为您分配AppKey,按页面提示操作即可。 1.2 向工程中导入SDK 下载统计SDK压缩包,解压至本地目录,将其中的SDK库原创 2016-02-26 13:55:35 · 2922 阅读 · 0 评论 -
iOS实战演练之根据文字字数来动态确定Label宽高
// 设置Label的字体 HelveticaNeue Courier UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:12.0f]; self.subTitleLabel.font = fnt; // 根据字体得到NSString的尺寸 CGSize size = [self.subTitleLab转载 2016-05-18 10:08:17 · 973 阅读 · 0 评论 -
iOS实战演练之UICollectionView导致的崩溃问题
UICollectionView 在ViewDidLoad方法中声明Cell的类,在ViewDidLoad方法中添加,此句不声明,将无法加载,程序崩溃 其中,CollectionCell是这个Cell的标识(之前几步已经定义过了。 ) [self.collectionView registerClass:[CollectionCell class] forCellWithReuseIdentif原创 2016-05-20 14:59:31 · 2726 阅读 · 0 评论 -
iOS实战演练之UIWebView无法显示问题
今天在做一个小demo的时候(ps:点击按钮时UIWebView显示该按钮代表的网站),发现UIWebView无法正常使用,下面是代码: ViewController.h:#import <UIKit/UIKit.h>@interface ViewController : UIViewController{ IBOutlet UIButton *bb; IBOutlet UIW原创 2016-06-20 14:40:41 · 3584 阅读 · 0 评论 -
iOS实战演练之Unknown type name 'UIColor" 的问题
遇到如下问题 解决方案: 在.h文件里引用 #import<UIKit/UIKit.h>即可解决问题!原创 2016-06-21 09:33:31 · 1208 阅读 · 0 评论 -
iOS实战演练之Mac OS X El 系统中安装cocoa pods完整教程(2016)
今天准备开始新项目,按照以前的方式在新项目中添加cocoapods但发现出现问题了,多处百度后解决问题,现在给大家献上Max OS X El 系统中安装cocoa pods的完整教程。 1、首先,打开Mac上的终端;2、在终端中输入sudo gem install cocoapods你会发现终端中的这个命令没有响应,一直卡死。因为cocoapods.org被墙堵住了 3、然后我们可以通过淘宝的R原创 2016-07-12 11:26:30 · 623 阅读 · 0 评论 -
iOS实战演练之开发一个iOS应用没有那么容易
读:这是来自新加坡的 iOS 开发者 Kent Nguyen 发表在1月底的一篇博文。这篇吐槽文在 iOS 开发圈子里流传甚广,从原文150多个评论就可见一斑,现翻译如下。 让我们开门见山吧:做一个iPhone应用需要花多少钱? 就是这个最常见的问题,我的很多朋友(大多是些西装革履的商务人士),还有我那些个对技术一知半解的客户们,他们都问过我这个的问题。通常,我会先给出一个大致的报价,这个报价并转载 2016-07-15 10:37:31 · 407 阅读 · 0 评论 -
iOS实战演练之如何隐藏UINavigationBar
如何隐藏UINavigationBar 显示: [self.navigationController setNavigationBarHidden:NO animated:YES]; 隐藏: [self.navigationController setNavigationBarHidden:YES animated:YES]; 隐藏返回键 self.navigationItem.hid原创 2016-07-29 10:45:48 · 621 阅读 · 0 评论 -
iOS实战演练之UINavigationBar滑动问题
问题:以Navigation Controller为根控制器,第一个页面为主页面mainViewController,需要隐藏navigation item;第二个页面为SecondViewController,需要显示navigation item,并有返回按钮,可以返回到mainViewController。1、在mainViewController中隐藏navigation item://隐藏原创 2016-07-29 14:34:41 · 757 阅读 · 0 评论 -
iOS实战演练之跳转界面时隐藏tabBar的方法
//1.设置self.tabBarController.tabBar.hidden=YES;self.tabBarController.tabBar.hidden=YES;//2.如果在push跳转时需要隐藏tabBar,设置self.hidesBottomBarWhenPushed=YES; self.hidesBottomBarWhenPushed=YES; NextViewCon原创 2016-08-03 10:39:29 · 1042 阅读 · 0 评论 -
iOS实战演练之对于present出来的UINavigationController返回的问题
如题,现在我们控制页面present到一个UINavigationController页面去SCMyCardDesignCollectionViewController *vc = [[SCMyCardDesignCollectionViewController alloc]initWithCollectionViewLayout:layout];UINavigationController *原创 2016-08-03 17:23:07 · 4483 阅读 · 0 评论 -
iOS实战演练之封装图片在上文字在下的button以及相关问题
废话不多说,直接上代码:封装图片在上文字在下-(void)initButton:(UIButton*)btn{ //使图片和文字水平居中显示 btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; //文字距离上边框的距离增加imageView的高度,距离左边框减少imageVie原创 2016-08-05 12:05:36 · 1127 阅读 · 0 评论 -
iOS实战演练之关于数据交互的问题(利用XAMPP搭建本地服务器, 编写PHP代码实现iOS端注册登录功能)
在做我的demo的时候,我选择利用XAMPP搭建本地服务器, 编写PHP代码实现iOS端注册登录功能,具体实现参考[iOS+PHP]利用XAMPP搭建本地服务器, 编写PHP代码实现iOS端注册登录功能一文,同时感谢简书作者M_Lee先生对我提出的一些疑问的简答。 废话不多说,我们来看实际上会遇到的一些问题: 1、数据库的UserInfo表中的中文字段传入客户端无法被识别,显示?? 这个问题困原创 2016-08-11 16:32:42 · 1152 阅读 · 0 评论 -
iOS实战演练之通过命令行将iOS的APP安装到模拟器中
目的最近因为iPhone X的即将上市,公司产品要求适配iPhone X,但是没真机,只能在模拟器中运行。所以需要用iPhone X的模拟器运行产品的.app文件解决Xcode6之后提供了xctool这个工具,可以做到这些事情:启动一个模拟器把app安装到启动好的模拟器上面从模拟器上卸载指定的app这些功能基本能满足我们的需要了。启动运行模拟器:xcrun instruments -w 'i原创 2017-10-12 10:31:51 · 1635 阅读 · 0 评论 -
Objective-C动画学习之转场动画
iOS7新特性 ViewController转场切换(二) 系统视图控制器容器的切换动画—push pop present dismis1.先来看看实现UIViewControllerAnimatedTransitioning的自定义动画类/** * 自定义的动画类 * 实现协议------>@protocol UIViewControllerAnimatedTransitioning *转载 2016-05-20 11:18:18 · 688 阅读 · 0 评论 -
Objective-C动画学习之CGAffineTransform
CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放、旋转和平移操作: 另称放射变换矩阵 CGAffineTransform类中包含3张不同类型,分别使用如下3个方法创建数值; 1.CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty)(平移:设置平移量)原创 2016-05-20 14:38:58 · 645 阅读 · 0 评论 -
Objective-C动画学习之自定义转场
iOS中的转场,指的是视图控制器的转场 转场其实就是使得ViewController显示在屏幕上,一共有两种方式:present 一个视图控制器,在日常开发中,主要体现在使用一个ViewController 模态跳转到另外一个ViewController在ContainerViewController 中显示一个视图控制器,这种体现在navigationController 和 tabbar原创 2016-05-26 14:50:47 · 569 阅读 · 0 评论 -
Objective-C动画学习之自定义动画切换的相关的主要API
VC容器的主要目的是解决将不同VC添加到同一个屏幕上的需求,以及可以提供一些简单的自定义切换效果。使用VC容器可以使view的关系正确,使添加的VC能够正确接收到例如屏幕旋转,viewDidLoad:等VC事件,进而进行正确相应。VC容器确实可以解决一部分问题,但是也应该看到,对于自定义切换效果来说,这样的解决还有很多不足。首先是代码高度耦合,VC切换部分的代码直接写在container中,难以分离转载 2016-05-26 15:53:44 · 437 阅读 · 0 评论 -
Objective-C动画学习之自定义过渡动画的实现和使用
一、实现自定义过渡过渡是由使用了 UIViewControllerAnimatedTransitioning 协议的对象来实现的。我们现在新建一个继承自 NSObject 的类,取名 DSLTransitionFromFirstToSecond。将上面提到的协议加入该类,然后就可以使用他来实现我们的两个类的过渡效果了。在这个对象中,有两个方法需要实现:animateTransition: 和 tra转载 2016-05-26 17:18:19 · 3808 阅读 · 0 评论 -
Objective-C动画学习之iOS Animation
零.前言这里没有太多的代码细节,只是探索iOS动画的基本概念,以及其抽象模型,数学基础等.我们学习一个知识的时候一般有两个部分,抽象部分和形象部分,抽象好比语言的语法,是规则,形象好比具体的句子,可以用来和别人交流的.抽象比形象难于理解,但比形象通用.其实数学中经常碰到抽象和形象的概念,比如有一系列离散的点,这是形象;通过这些点我们拟合出一条曲线,得到其函数,函数是抽象的;然后通过这个函数我们可以得转载 2016-06-15 16:06:50 · 688 阅读 · 0 评论 -
UIGestureRecognizer学习之UIGestureRecognizerState的简单了解
在 iPhone 或 iPad 的开发中,除了用 touchesBegan / touchesMoved / touchesEnded 这组方法来控制使用者的手指触控外,也可以用 UIGestureRecognizer 的衍生类別来进行判断。用 UIGestureRecognizer 的好处在于有现成的手势,开发者不用自己计算手指移动轨迹。 UIGestureRecognizerState的定义如原创 2016-05-20 14:53:05 · 2081 阅读 · 0 评论 -
UIGestureRecognizer学习之UIGestureRecognizer
通过UIGestureRecognizer可以处理碰撞事件。UIGestureRecognizer子类: UITapGestureRecognizer 处理用户点击手势的手势处理器 UIPinchGestureRecognizer 处理用户捏合手势的手势处理器 UIRotationGe原创 2016-06-06 14:28:07 · 733 阅读 · 0 评论 -
UIGestureRecognizer学习之UITapGestureRecognizer(点击)
UITapGestureRecognizer是UIGestureRecognizer的子类。 UITapGestureRecognizer除了继承UIGestureRecognizer的属性外,还提供如下俩个属性:numberOfTapRequired: //指定该手势处理器只处理几次触碰事件numberOfTouchesRequired: //指定该手势处理器只处理几个手指的触碰事件示例:为应原创 2016-06-06 14:43:42 · 2862 阅读 · 0 评论 -
UIGestureRecognizer学习之UIPinchGestureRecognizer(捏合)
UIPinchGestureRecognizer是UIGestureRecognizer的子类。 UIPinchGestureRecognizer除了继承UIGestureRecognizer的属性外,还提供如下俩个属性:scale: //获取捏合的比例velocity: //获取捏合的速度示例:和前面的UITapGestureRecognizer的例子相似。- (void)viewDidLo原创 2016-06-06 14:55:43 · 2719 阅读 · 0 评论 -
UIGestureRecognizer学习之UIRotationGestureRecognizer(旋转)
UIRotationGestureRecognizer是UIGestureRecognizer的子类。 UIRotationGestureRecognizer除了继承UIGestureRecognizer的属性外,还提供如下俩个属性:rotation: //获取旋转角度velocity: //获取旋转速度示例:通过旋转手势旋转图片@implementation FKViewController原创 2016-06-06 15:00:09 · 1149 阅读 · 0 评论 -
UIGestureRecognizer学习之UISwipeGestureRecognizer(轻扫)
UISwipeGestureRecognizer是UIGestureRecognizer的子类。 UISwipeGestureRecognizer除了继承UIGestureRecognizer的属性外,还提供如下俩个属性:direction: //设置该手势处理器处理该方向的轻扫。该属性支持UISwipeGestureRecognizerDirectionRight(1<<0)、UISwipeG原创 2016-06-06 15:38:43 · 1457 阅读 · 0 评论 -
UIGestureRecognizer学习之UIPanGestureRecognizer(拖动)
UIPanGestureRecognizer是UIGestureRecognizer的子类。 UIPanGestureRecognizer除了继承UIGestureRecognizer的属性外,还提供如下两个属性:maximumNumberOfTouches: //设置该拖动手势处理器最多支持几个手指拖动。minimumNumberOfTouches: //设置该拖动手势处理器最少需要几个手指原创 2016-06-06 16:01:15 · 2028 阅读 · 0 评论 -
UIGestureRecognizer学习之UILongPressGestureRecognizer(长按)
UILongPressGestureRecognizer是UIGestureRecognizer的子类。 UILongPressGestureRecognizer除了继承UIGestureRecognizer的属性外,还提供如下两个属性:maximumNumberOfTouches: //设置该拖动手势处理器最多支持几个手指拖动。minimumPressDuration: //指定用户至少在屏原创 2016-06-06 17:40:30 · 2803 阅读 · 0 评论 -
Objective-C-UI控件学习之UIButton详解
UIButton详解: //这里创建一个圆角矩形的按钮 UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];// 能够定义的button类型有以下6种, // typedef enum { // UIButtonTypeCustom = 0, 自定义风格原创 2016-05-19 14:08:46 · 1927 阅读 · 0 评论 -
Objective-C-UI控件学习之UIVisualEffectView(毛玻璃效果)
做毛玻璃效果最新方法 UIVisualEffectView *visualEffect = [[UIVisualEffectView alloc]initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight]]; visualEffect.frame = CGRectMake(20, 90, 280, 3原创 2016-05-20 14:28:17 · 547 阅读 · 0 评论 -
Objective-C-UI控件学习之button重写方法改变button中图片文字的位置
button重写方法改变button中图片文字的位置 1.重写方法,改变 图片的位置在titleRect..方法后执行 - (CGRect)imageRectForContentRect:(CGRect)contentRect { CGFloat imageX=self.frame.size.width/2+boundingRect.size.width/2; UIS原创 2016-05-20 14:43:17 · 2719 阅读 · 0 评论 -
Objective-C-UI控件学习之改变UITabBarController中当前显示的viewController
改变UITabBarController中当前显示的viewController 1、selectedIndex属性 通过该属性可以获得当前选中的viewController,设置该属性,可以显示viewControllers中对应的index的viewController。如果当前选中的是MoreViewController的话,该属性获取出来的值是NSNotFound,而且通过该属性也原创 2016-05-20 14:45:39 · 4656 阅读 · 0 评论