自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蜗牛一步一步爬

万事开头难 别放弃就会看到光芒

  • 博客(69)
  • 收藏
  • 关注

原创 iOS 更改tabBar分割线颜色

// 改变分割线的颜色 禁止透明 self.tabBar.layer.borderWidth = 0.50; self.tabBar.layer.borderColor = [UIColor colorWithRed:206/255.0 green:206/255.0 blue:206/255.0 alpha:1].CGColor; self.tabBar.barStyle

2017-10-25 15:52:02 1910

原创 信号量

信号量信号量 初始值 v = 3a comeif v else v = v - 1 //2 inb comeif v else v = v - 1 //1 inc comeif v else v = v - 1 //0 ind comeif v e

2017-10-25 15:44:57 339

原创 iOS AutoLayout 简单运用(纯代码)

举例说明:创建一个grayView(宽150 高100 距上200 距左100)方法一:原生API  UIView *grayView = [UIView new]; grayView.backgroundColor = [UIColor lightGrayColor]; // 禁止将 autoresizingmask 转换为 constraints gray

2017-10-23 11:25:24 1192

原创 iOS 数组排序sortedArrayUsingComparator

#pragma mark - NSArray 常用方法#pragma mark 数组排序方法(倒序)- (void)arraySort2{ // 数组的排序 // 1. 定义一个数字数组 NSArray *array = @[@(3), @(5), @(4), @(2), @(1)]; // 2. 对数组进行排序 NSArray *resul

2017-10-09 09:58:25 6931

转载 Swift 3.0 (一)

转载自:酷走天涯(文中部分错误已修改 如发现请告知)基本数据类型使用 let 定义常量let myConstant = 42使用 var 定义变量var myVariable = 42myVariable = 50如果有初始化,你可以指定变量类型或者让系统自己去推断let implicitInteger = 70let implici

2017-06-01 16:24:10 679

原创 iOS 知识点归纳- 持续更新

以下的知识点都是平时的积累 不足之处请多指教1. 由于证书的原因,安装在手机上的iOS Demo app 运行几天后就无法打开。2. typedef returnType (^name)(arguments);例子:typedef void (^btnClickedHandler)(UIButton *sender);3. #define NS_CL

2017-05-26 20:53:20 1567

转载 iOS透明导航栏的平滑过渡(进阶版)

引如我在传送门:iOS导航栏切换界面时隐藏和显示中所说,现在很多App的个人中心模块都是不保留导航栏的,会直接使导航栏透明,比如做的很好的QQ个人信息界面:为什么说QQ做的很好呢?既然有透明的导航栏也有不透明的导航栏,那一定会在界面切换之间存在一个过渡的过程,而这个过程,QQ做的特别好,在从透明导航栏界面返回到不透明导航栏界面时,导航栏的透明度是一个渐进的过渡效果,甚至会有

2017-04-08 13:19:38 3517

转载 iOS 底层解析weak的实现原理(包含weak对象的初始化,引用,释放的分析)

很少有人知道weak表其实是一个hash(哈希)表,Key是所指对象的地址,Value是weak指针的地址数组。更多人的人只是知道weak是弱引用,所引用对象的计数器不会加一,并在引用对象被释放的时候自动被设置为nil。通常用于解决循环引用问题。但现在单知道这些已经不足以应对面试了,好多公司会问weak的原理。weak的原理是什么呢?下面就分析一下weak的工作原理(只是自己对这个问题好奇,学习过

2017-04-08 09:03:04 886

转载 iOS中的runtime应用

1.什么是runtime?runtime是一套底层的C语言API,包含很多强大实用的C语言数据类型和C语言函数,平时我们编写的OC代码,底层都是基于runtime实现的。2.runtime有什么作用?1.能动态产生一个类,一个成员变量,一个方法2.能动态修改一个类,一个成员变量,一个方法3.能动态删除一个类,一个成员变量,一个方法3.常用的头文件 #im

2017-04-06 14:22:38 447

转载 iOS中特有的NS_ENUM和NS_OPTIONS

一般情况下,我们采用C风格的enum关键字可以定义枚举类型。enum{     UIViewAnimationTransitionNone,    UIViewAnimationTransitionFlipFromLeft,    UIViewAnimationTransitionFlipFromRight,    UIViewAnimationTransitionCurlUp,  

2017-03-30 10:37:36 329

转载 ios 学习资料汇总~持续更新

# LearningIOSiOS初学者面对网上浩瀚的资料往往不知所措,为了让iOS初学者们少走弯路,少花时间在搜索资料上,个人为iOS初学者整理了一份学习资料。希望能帮助到大家。## 培训班视频教程地址  | 简介---- | ----[传智播客iOS公开课](http://open.itcast.cn/ios/)|传智播客i

2017-02-28 10:11:24 1748

转载 iOS一个简单的设置圆角不引起性能问题的分类

写在前面iOS设置圆角的性能探究已经是一个老生常谈的问题了,众所周知,如果直接使用layer的cornerRadius + masksToBounds虽然可以很方便的完成圆角设置,但会引起离屏渲染,导致性能问题,在列表视图中过多的圆角设置就会导致滑动卡顿,现在主流的方案就是在获取图片的一刻开启异步线程对图片进行相应的圆角处理,把图片处理成想要的图片在返回主线程进行显示,想要便捷的达成此目的

2017-02-28 09:47:04 2910

转载 模型转换工具Mantle, MJExtension, JSONModel的使用和异同

现在大部分的项目都需要将服务器返回的JSON数据转换为Model再使用,手动转换不仅费时费力,还写了一堆重复代码,肯定是不科学的,一般都使用相应的工具来自动转换。目前接触的字典转模型工具有三种,Mantle, MJExtension, JSONModel, 虽然他们做的事情都是一样的,但是使用方法区别还是蛮大的,以及在一些细节上的处理也是不同的。Mantle的使用简单的例子就不来了

2017-02-27 15:50:30 626

转载 正确使用iOS常量(const)、enum以及宏(#define)

本文投稿文章,作者:SuperMario_Nil(简书)前言:本文主要梳理iOS中如何使用常量、enum、宏,以及各自的使用场景。重要的事情首先说:在iOS开发中请尽量多使用const、enum来代替宏定义(#define);随着项目工程的逐渐增大,过多的宏定义还可能影响项目的编译速度。宏定义大家应该都不陌生,使用起来非常简单,首先我们先来看一下宏定义跟const的

2017-02-27 10:43:00 390

转载 iOS 宏(define)与常量(const)的正确使用

在iOS开发中,经常用到宏定义,或用const修饰一些数据类型,经常有开发者不知怎么正确使用,导致项目中乱用宏与const修饰你能区分下面的吗?知道什么时候用吗?#define HSCoder @"汉斯哈哈哈"NSString *HSCoder = @"汉斯哈哈哈";extern NSString *HSCoder;extern const NSString *HSCoder;

2017-02-27 10:35:09 474

原创 cocoaPods使用教程 持续更新

一.ruby环境1.检查ruby打开终端,输入:ruby -vLast login: Thu Jan 5 13:37:02 on ttys000MickydeMac-mini:~ micky$ ruby -vruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]MickydeMac-mini:

2017-01-05 15:49:33 1440

转载 iOS - property中的strong与weak

strong关键字与retain关似,用了它,引用计数自动+1,用实例更能说明一切@property (nonatomic, strong) NSString *string1;   @property (nonatomic, strong) NSString *string2;  有这样两个属性,@synthesize string1;   @synthesize strin

2016-08-27 14:27:00 575

转载 iOS-修饰NSString的strong和copy

大部分的时候NSString的属性都是copy,那copy与strong的情况下到底有什么区别呢?比如:@property (retain,nonatomic) NSString *rStr;@property (copy, nonatomic)   NSString *cStr;- (void)test:{    N

2016-08-27 14:08:36 1279

转载 ios-深拷贝和浅拷贝

一、深拷贝和浅拷贝深拷贝:对象拷贝 - 直接拷贝内容。浅拷贝:指针拷贝 - 将指针中的地址值拷贝一份。二、对于 Copy 与 mutableCopy 的实践思路:我用四个方案来验证 Copy 与 mutableCopy 的区别。方案:方案一:copy不可变的字符串NSString*str = @"aaa";NSString*copyStr = [str

2016-08-27 13:44:42 740 1

转载 iOS app开发之 debug release

在开发过程中,我们经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程。但是一个发布的程序,里面带有太多的NSLog输出,肯定对于App性能有所影响,这时候我们可以使用一个宏定义来处理,在开发的时候使用DEBUG模式,在发布的时候使用RELEASE模式。这样,发布的App就不会在程序内部做大量的NSLog输出了。

2016-04-06 11:18:08 763

原创 Swift2.0学习笔记(整理版)

网上找到了大神讲解的Swift2.0基础版根据 视频 整理出 有关swift2.0的基础 和大家分享 也提醒自己 要学好它 打算以后用 swift开发/* 1.hello swift */print("hello world,hello swift!")print("你好")/* 2.常量与变量 */// 常量:基本上或可预见的期间内,恒定不变的量,// letlet

2016-03-17 11:52:29 790

转载 iOS实际网络检测框架RealReachability

背景网络连接状态检测对于我们的iOS app开发来说是一个非常通用的需求。为了更好的用户体验,我们会在无网络时展现本地或者缓存的内容,并对用户进行合适的提示。但事实上,当前iOS开发者们普遍使用的网络检测框架,实际上都无法帮助我们检测真正的网络连接状态;它们所能检测的只是本地连接状态。 本地连接状态和实际网络连接状态不一致的“伪连接”情况包括但不限于如下场景:现在很流行的公用w

2016-03-04 09:56:58 1508

转载 宝库iOS开发笔试题

序言招聘高峰期来了,大家都非常积极地准备着跳槽,那么去一家公司面试就会有一堆新鲜的问题,可能不会,也可能会,但是了解不够深。本篇文章为群里的小伙伴们去宝库公司的笔试题,由笔者整理并提供笔者个人参考答案。注意,仅供参考,不代表绝对正确。参考答案不唯一,大家可以根据自己的理解回答,没有必要跟笔者的一样。参考笔者的答案,也许给你带来灵感!1、对数组中的元素去重复例如:

2016-02-26 09:31:36 1126

转载 关于__IPHONE_OS_VERSION_MAX_ALLOWED和__IPHONE_OS_VERSION_MIN_ALLOWED的用法

简单来说, 这些编译期常量, 对运行时的环境判断完全无效, 它告诉编译器用哪一段代码来进行编译, 那那段代码里, 你仍然可以写运行到目标机器里会崩溃的代码, 从stackoverflow里拷两段示例代码出来:片段1, max:#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 50000 //you can use iOS 5 APIs here be

2016-02-25 10:39:06 854

转载 iOS 更改 AppDelegate 名字 为XXXDelegate

打开你的Appdelegate.m 把光标选中到@implementation AppDelegate 后面,意思选中该类;点击Xcode的Edit->Refactor->Rename... ;再出现的框里面填上你的要更改成的名字smicappdelegate,点击Review;然后确定一下文件中要改的部分,无误之后,点击save;OK!

2016-02-23 15:57:51 1069

转载 关于16年2月14日以后上传AppStore出现:Missing iOS Distribution signing identity for...的问题

2016年2月14日以后打包上传AppStore会发现出现如下的问题:错误截图导致问题的原因是:下边这个证书过期了以下是苹果官方给出的回应:Thanks for bringing this to the attention of the community and apologies for the issues you’ve b

2016-02-23 09:16:35 430

原创 iOS 隐藏导航栏或状态栏

隐藏导航栏[self.navigationController setNavigationBarHidden:YES];隐藏状态栏iOS7.0之前[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];iOS7.0之后 在需要的.m文件中

2016-01-14 15:46:09 853

原创 根据scrollview滚动来隐藏或显示navigation/tabbar

根据scrollview滚动来隐藏或显示navigation/tabbar写属性{ CGFloat contentOffsetY; CGFloat oldContentOffsetY; CGFloat newContentOffsetY;}写代理方法#pragma mark -UIScrollViewDelegate// 1.

2015-12-10 10:55:14 1686

原创 iOS 在textView中添加图片

CMSListCell *cell = (CMSListCell *)[self.view viewWithTag:self.tag]; // textview add image NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithAttributedStri

2015-12-03 13:39:21 4841

转载 在建好的项目中加入CoreData

1.如果想在已建好的项目中加入CoreData,首先需要引入CoreData FrameWork。这里需要先点击target,然后再点击Build Phases,在下面的界面中找到LinkBinary With Libraries。点击箭头,展开这一项,然后再点击加号,出现Framework项界面。在搜索框中输入CoreData,这时出现CoreData.framework,选中它并点击Add按钮

2015-12-02 17:16:37 751

原创 navigation右侧添加多个按钮(三种方法)

方法一: UIToolbar* tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 100, 40)]; [tools setBarTintColor:[UIColor whiteColor]]; NSMutableArray* buttons = [[NSMutableArray alloc] initWi

2015-11-24 10:44:26 7761

原创 UISegmentControl 字体加粗

// seg字体加粗 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont boldSystemFontOfSize:13],NSFontAttributeName ,nil]; [_seg setTitleTextAttributes:dic forState:UIControlStateNo

2015-11-13 16:40:20 869

原创 UIButton 文字左对齐

_writeButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; _writeButton.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);

2015-11-13 13:15:51 505

原创 《iOS总结》 <Error>: CGContextSaveGState: invalid context 0x0.

: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.解决方法:1.忽略(iOS的BUG,苹果官方说可以忽略这个警告。详情请查看这个链接:https://foru

2015-11-03 14:32:08 1018

转载 《iOS总结》25种性能/内存优化常用方法

1. 用ARC管理内存ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露。它自动为你管理retain和release的过程,所以你就不必去手动干预了。忘掉代码段结尾的release简直像记得吃饭一样简单。而ARC会自动在底层为你做这些工作。除了帮你避免内存泄露,ARC还可以帮你

2015-10-30 14:40:56 569

原创 《iOS总结》strong和weak

例1:@interface AController : UIViewController{ __weak UIView *aView;}@end@implementation AController- (void) viewDidLoad{ [super viewDidLoad]; UIView *view = [[UIView al

2015-10-30 14:27:10 831

原创 《AppStore审核》PLA 3.3.12

PLA 3.3.12We found that your app uses the iOS Advertising Identifier but does not include ad functionality. This does not comply with the terms of the iOS Developer Program License Agreement, as

2015-10-23 11:29:13 676

原创 《AppStore审核》14.3

14.3 DetailsYour app enables the display of user-generated content but does not have the required precautions in place.Next StepsIt is necessary that you put all of the following pre

2015-10-23 11:18:51 1470

转载 《iOS总结》上传报错:ERROR ITMS-90049

上传appStore时,遇到错误,代码为ERROR ITMS-90049解决问题方式: 1. 在xcode左下角搜索info.plist 找到第三方的info.plist文件,如友盟中腾讯Api文件夹下的info.plist文件; 2. 找到Bundle version字段 ,添加项目对应的build号;3. 添加Bundle identifier 字段,并对应添加项目的Bun

2015-10-23 09:13:54 2528

原创 《iOS总结》UITableViewCell的增加与删除-MickyChiang

#import "ViewController.h"#import "MyCell.h"#import "MyList.h"@interface ViewController () @property (nonatomic, strong) UITableView *tableView;@property (nonatomic, strong) NSMutableArray *obj

2015-10-22 18:09:16 760

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除