- 博客(80)
- 资源 (1)
- 收藏
- 关注
原创 iOS 高仿《丁香医生》
源码下载地址:https://github.com/MaShengKui/DXDoctor喜欢的朋友记得帮忙star哟。
2017-05-15 22:32:35 1601
原创 iOS RunLoop简介
一、什么是RunLoop?RunLoop是运行循环,每个Cocoa应用程序都由一个处于阻塞状态的do/while循环驱动,当有事件发生时,就把事件分派给合适的监听器,如此反复直到循环停止。处理分派的对象就叫做“运行循环”。基本作用:1、保持程序的持续运行 2、处理App中的各种事件(比如触摸事件、定时器事件、Selector事件)3、节省CPU资源,提高程序性能:该做事时做事,该休
2017-04-24 16:15:56 500
转载 APP被拒绝上架的各种原因翻译
1. Terms and conditions(法律与条款)1.1 As a developer of applications for the App Store you are bound by the terms of the Program License Agreement (PLA), Human Interface Guidelines (HIG), and any
2017-03-06 09:26:51 2118
原创 iOS cocoapods依赖私有库
概述:在iOS开发中,我们经常会有一些需要导入的库或者自己封装好的类、实用工具等,当我们要做新工程时,如果再次导入这些东西的话,需要做的还是一些重复性工作,繁琐无味,没什么技术含量,有时还需要解决编译错误。如果我们把这些常用的工具模块化,然后再利用cocoapods的方式导入,只需几行命令就可以完美导入,新工程就可以应用自己的实用工具了,岂不快哉!在这里简单描述一下pods导入私有库的方法
2017-01-24 13:47:22 817
转载 关于removeFromSuperview关键的几个点
removeFromSuperviewUnlinks the receiver from its superview and its window, and removes it from the responder chain.译:把当前view从它的父view和窗口中移除,同时也把它从响应事件操作的响应者链中移除。分析:这里有两个关键点,可以帮助
2016-12-03 16:45:53 471
原创 iOS 类别中增加、使用属性
iOS扩展属性:category可以扩展类的方法,但是不能扩张类的属性。如果要扩展类的属性,可以用associative,这个相对于category来说用的比较少,而且他还用到运行时编程,必须使用,使用objc_getAssociatedObject,objc_setAssociatedObject以及objc_removeAssociatedObjects.这几个方法的生命如下:示例代码
2016-11-30 16:15:26 590
原创 swift3.0 延迟执行
//延时1s执行DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(Int64(1*NSEC_PER_SEC))/Double(NSEC_PER_SEC)){ //code}
2016-11-13 19:21:45 1577
转载 Xcode8 屏蔽控制台多余的Log日志
Xcode 8 新项目运行输出一大堆东西,看着很烦人,也不知道是干什么的......那就简单粗暴的屏蔽它们吧...步骤:在 Product ---> Scheme ---> Edit Scheme ---> Run ---> Arguments ---> Environment Variables 中添加字段 "OS_ACTIVITY_MODE",将其设置为 "disable", 点击 c
2016-11-13 15:48:18 870
原创 swift 上传字符数组
let icdIds = NSMutableString.init(string:"[")for i in0...self.diagnoseArray.count-1 { let icd=self.diagnoseArray[i]as? ICD10Dto icdIds.appendFormat("'%@',", (icd?.id)!)}
2016-11-11 22:05:34 609
原创 Xcode8 模拟器无法卸载应用
1.按的时候控制好力度,轻按。2.把模拟器上面的Hardware->Touch Pressure->Use Prackpad Force关掉。
2016-10-31 11:16:24 969
原创 iOS Nib文件与手动编码初始化区别
从Nib中加载对象实例时,init:或initWithFrame:都不会调用。而是调用initWithNibName或initWithCoder:怎么理解?1. initWithFrame方法是什么?initWithFrame方法用来初始化并返回一个新的视图对象,根据指定的CGRect(尺寸)。当然,其他UI对象,也有initWithFrame方法。我们可以以UIView为例,来搞
2016-09-23 17:46:03 1656
转载 iPhone文件路径大全
1、【/Applications】常用软件的安装目录 2. 【/private /var/ mobile/Media /iphone video Recorder】iphone video Recorder录像文件存放目录3、【/private /var/ mobile/Media /DCIM】相机拍摄的照片文件存放目录4、【/private/var/ mobile /
2016-09-23 15:01:46 2604
转载 iOS UIView的生命周期
一、 界面加载大体流程:(loadView/nib)文件来加载view到内存-->viewDidLoad函数进一步初始化这些view-->内存不足时, 调用viewDidUnload函数释放views-->当需要使用view时又回到第一步loadView:永远不要主导调用这个函数。viewController 会在self.view的属性(property)被请求时并且self.v
2016-08-30 17:13:21 742
原创 iOS 工厂模式
一、GOF是这样描述工厂模式的:“Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.”在基类中定义创建对象的一个接
2016-08-30 14:56:15 506
原创 CocoaPods升级到1.0.1遇到的错误
最近因为项目需要,把CocoaPods更新到了最新版本1.0.1版本,更新完之后出现了一些莫名其妙的问题,导致整个工程跑不起来,报的都是第三方库丢失的错误,但是我查看工程的资源配置和Builder Phases —>Link Binary With Libraries,发现所有的库资源都没有少,但就是会报错,工程跑不起来。后来经过研究,仔细分析了一下,推测的原因是:因为CocoaPods更新到
2016-08-29 16:07:02 911
原创 iOS 获取图片的主体颜色(主色调)
-(UIColor *)mainColorOfImage:(UIImage *)image{ #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 int bitmapInfo =kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedLast;#else
2016-07-05 13:01:08 3181
原创 iOS APP整体竖屏,部分页面横屏
1.首先可以自定义一个NavigationController,例如:2.让应用中的所有Nav继承自这个NavigationController,并且给这个NavigationController一个属性,例如:3.在NavigationController中重写下面两个方法在需要横屏的时候,根据InStyle属性强制屏幕就好。-(UIInterface
2016-06-30 13:55:05 1821
原创 iOS 图片处理-按比例缩放 (1.按比例缩放 2.指定宽度按比例缩放)
1.按比例缩放。//按比例缩放,size是你要把图显示到 多大区域 ,例如:CGSizeMake(300, 400)-(UIImage *) imageCompressForSize:(UIImage *)sourceImage targetSize:(CGSize)size{ UIImage *newImage = nil; C
2016-06-16 11:29:30 6584
转载 iOS runtime机制
引言相信很多同学都听过运行时,但是我相信还是有很多同学不了解什么是运行时,到底在项目开发中怎么用?什么时候适合使用?想想我们的项目中,到底在哪里使用过运行时呢?还能想起来吗?另外,在面试的时候,是否经常有笔试中要求运用运行时或者在面试时面试官会问是否使用过运行时,又是如何使用的?回想自己,曾经在面试中被面试官拿运行时刁难过,也在笔试中遇到过。因此,后来就深入地学习了Runtime机
2016-06-06 09:46:48 1900
转载 iOS UIApplication和程序启动原理
Xcode4.2之前的main函数如下:int main(int argc, char *argv[]){ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil);
2016-06-01 17:01:08 870
转载 iOS 使用CocoaPods过程中的几个问题
当把CocoaPods生成的workspace移动到上层目录时,需要改下Pods.xcconfig和工程里的一些设置,就通常没什么难度。当遇到这个问题时:[plain] view plain copy print?Could not automatically select an Xcode project. Specify one in y
2016-06-01 14:05:18 744
原创 iOS 为label添加中划线 下划线(商品打折)
应用场景:在做一些网购类APP或者是商品展示类的APP时,我们经常会遇到某种商品打折优惠或者抢购的场景,并且为了吸引客户,商家一般把打折商品的现价和原价同时显示出来,进行对比,此时就出现了为展示原价的label添加中划线或者是下划线的需求。下面就直接上代码了:1、添加中划线。 UILabel *oldPriceLabel = (UILabel *)[selfv
2016-05-30 13:29:42 3406
转载 iOS APP上线 发布流程
上架前预热先登陆自己的开发者账号(自己提前注册好 iOS 开发者账号,这里假设你已经拥有了一个 iOS 开发者账号),进入这个页面:https://developer.apple.com/account/overview.action由于我提交上架的是iOS Apps,因此进入最左边这一栏:一开始,看着这几个“Certificates、Identifiers、Dev
2016-05-30 11:37:19 14126 1
原创 iOS tableView分区+索引
1.创建一个ViewController,New File->Cocoa Touch->Objective-C class->Class:ViewController,Subclass of:UIViewController2.打开xib,在view中添加TableView,并将TableView的两个属性拖到File's Owner中,可以设置tableview的分区样式,选
2016-05-27 14:56:57 1950
原创 iOS UITextView限制输入字数并显示剩余字数
#define MAX_LIMIT_NUMS 255self.textNumLab为显示剩余字数的label#pragma mark - 限制病情描述输入字数(最多不超过255个字)- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replac
2016-05-26 11:47:30 7084 1
原创 iOS tableView动态创建分组及组内排序
#pragma mark - 判断分组数,并且按上传时间和检查时间降序排列-(void)analyseHDCData{ //1.数组内部元素排序 NSArray *sortDesc = [NSArrayarrayWithObject:[NSSortDescriptorsortDescriptorWithKey:@"createTime"a
2016-05-13 11:44:06 3773 1
转载 iOS block的简单说明
一、先用Xcode创建一个空工程学习block之前先用弄懂c语言的函数指针看代码:typedef int (^SumP)(int,int);//用typedef定义一个block类型void test(){ printf("调用了test函数\n");}int sum(int a,int b)
2016-05-06 17:20:01 500
原创 iOS 图片捏合放大缩小 点击放大缩小
此处的图片控件,我用的是UIButton,因为它自身有点击事件,不过UIImageView同理,为其添加手势即可实现同样的效果。//// ServiceResultViewController.m// Created by msk on 16/3/7.//#import "ServiceResultViewController.h"
2016-05-05 17:54:10 10190
转载 iOS 同一个View识别单击和双击手势
在视图上同时识别单击手势和双击手势的问题在于,当检测到一个单击操作时,无法确定是确实是一个单击操作或者只是双击操作中的第一次点击。解决这个问题的方法就是:在检测到单击时,需要等一段时间等待第二次点击,如果没有第二次点击,则为单击操作;如果有第二次点击,则为双击操作。检测手势有两种方法,一种是定制子视图,重写视图从UIResponder类中继承来的事件处理方法,即touchesBegan:w
2016-05-05 16:33:52 616
原创 iOS xib创建UIScrollView不滑动问题解决
本文适用于解决iOS7 下 UIScrollView 无法滑动的问题。当项目中有需要用xib创建scrollView的时候,有时候会出现scrollView怎样设置都不滑动的问题,即使设置了scrollView的frame和contentSize,都无济于事,别急,可以试试下面的方法,这个方法叫viewDidLayoutSubviews,这个方法是控制控件的layout的。因为在aut
2016-05-03 19:25:19 3760
转载 iOS-实现图片的捏合放大与缩小
第一步 设置代理[m_zoomScrollView setDelegate:self];第二步 重写代理方法 - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{ return m_coverImg;}第三步 设置放大缩小倍数
2016-05-03 18:58:06 2421
原创 iOS 判断字符串含有表情
-(BOOL)isContainsEmoji:(NSString *)string { __block BOOL isEomji =NO; [string enumerateSubstringsInRange:NSMakeRange(0, [stringlength]) options:NSStringEnumerationByComposedCharacterS
2016-04-18 11:01:22 682
转载 卫语句
1.使用卫语句取代嵌套表达式函数中的条件逻辑使人难以看清正常的执行途径。使用卫语句表现所有特殊情况。动机:条件表达式通常有2种表现形式。第一:所有分支都属于正常行为。第二:条件表达式提供的答案中只有一种是正常行为,其他都是不常见的情况。 这2类条件表达式有不同的用途。如果2条分支都是正常行为,就应该使用形如if…..else…..的条件表达式;如果某个条件极其罕
2016-04-13 14:41:41 1608
原创 iOS FMDB同时修改多个参数的值
应用场景:比如我创建了一个名为“drugTable”的数据表,现在想要同时修改其中某一条记录的多个参数(如现在要同时修改一条记录的“showName”字段和“remark”字段。)尝试了很多方法,但是都达不到修改的效果(希望有大神能够不吝赐教,予以指正),所以才利用了以下的 笨方法。1.“drugTable”的表结构。//创建药品表 NSStr
2016-04-13 13:07:49 4639 1
原创 iOS 模态跳转与返回
例如在当前A控制器利用模态跳转到另一个B控制器1.当前A控制器,跳转代码self.modalPresentationStyle=UIModalPresentationPageSheet;[selfpresentViewController:searchVC animated:YEScompletion:NULL];2.返回当前A控制器,在
2016-04-13 11:35:16 9146
原创 iOS xib崩溃问题
错误描述:Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "ServiceMoreDetailedView" nib but the view ou
2016-04-06 18:32:22 5227
转载 iOS-关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
刚接触iOS开发的人难免会对苹果的各种证书、配置文件等不甚了解,可能你按照网上的教程一步一步的成功申请了真机调试,但是还是对其中的缘由一知半解。这篇文章就对Certificate、Provisioning Profile等做个总结。 1.概念介绍如果你拥有一个开发者账户的话,在iOS Dev Center打开Certificates, Indentifiers & Profiles
2016-03-30 09:39:50 658
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人