11 2015 档案
摘要:1.功能简介RootViewController中用个lable和一个按钮,点击按钮跳转到模态窗口。在模态窗口中有个TextField和一个按钮,输入文字点击关闭模态按钮后跳转到RootViewController,并改变其label为输入的值。 2 .实现思路ModelViewController...
阅读全文
摘要:1.功能简介RootViewController中用个lable和一个按钮,点击按钮跳转到模态窗口。在模态窗口中有个TextField和一个按钮,输入文字点击关闭模态按钮后跳转到RootViewController,并改变其label为输入的值。2 .实现思路ModelViewController中...
阅读全文
摘要:1,什么是代理模式?代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。2,策略模式有什么好处? 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。3,代理模式一般涉及到的角色有:抽象角色:声明真实对象和代理对象的共同接口; 代理角...
阅读全文
摘要:举个例子:如果我有一个页面需要进入时同时隐藏NavigationBar和TabBar,那么我就在那个页面的ViewController的代码里加上下面的代码。就可以实现了。接下来告诉大家每一块要注意的地方。1、假如只要隐藏NavigationBar的话就不要setTabBarVisible这一句就好...
阅读全文
摘要:1.跳转到任一UIViewController var sb = UIStoryboard(name: "Main", bundle:nil) var vc = sb.instantiateViewControllerWithIdentifier("ChooseViewController") ...
阅读全文
摘要:图片的处理大概就分 截图(capture), 缩放(scale),设定大小(resize), 存储(save)这几样比较好处理, 另外还有滤镜,擦试等, 以后再说在这个Demo code裡, 我写了几个方法1.等比率缩放- (UIImage *)scaleImage:(UIImage *)image...
阅读全文
摘要:一有用的 UIImage 扩展,支持(等比例)放大和旋转可在许多 App 中使用。UIImage-Extensions.h#import #import CGFloat DegreesToRadians(CGFloat degrees);CGFloat RadiansToDegrees(CGFlo...
阅读全文
摘要:我们以设置右侧按钮为例,左侧方法类似方法一,直接自定义文字letitem=UIBarButtonItem(title:"分享",style:UIBarButtonItemStyle.Plain,target:self,action:nil)self.navigationItem.rightBarBu...
阅读全文
摘要:在IPHONE上,NAV和TAB混合使用的案例很多.但很多书籍都没详细介绍这个是怎么使用的.我也找了很久才弄清楚怎么做.现在分享给大家.1.先建立一个Window-based Application 项目.2.加入一个Tab Bar Controller,在library-objects拖动TabB...
阅读全文
摘要:很多时候,在UI设计方面同时需要使用导航控制器和标签栏控制器,这时,需要掌握如何设计结合使用这两种不同控制器。比如手机QQ,程序有三个标签 栏(分别为消息、联系人、动态),同时在选择某个联系人或者会话时,会进入聊天的子页面,因此这里同时使用到了标签栏控制器和导航控制器。我目前所知道有以下方法可实现上...
阅读全文
摘要:UINavigationController与UITabBarController是iOS开发中最常用的两种视图控制器,它们都属于UIViewController的子类,继承关系如下:@interface UITabBarController : UIViewController @interfac...
阅读全文
摘要:一、简单介绍UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindowiOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了一个iOS程序之所以能显示到...
阅读全文
摘要:随着项目的业务逻辑越来越复杂,随着项目越来越大,那么我们Storybard中得控制器就越来越多, 就越来越难以维护。然而使用Storyborad又能更方便的帮助我们做屏幕适配(PS:尤其在6、6+出来后)。我们可以将复杂的问题简单化,通过创建多个Storyboard分别管理不同的模块的方式来优化代码...
阅读全文
摘要:前言:苹果官方是推荐我们将所有的UI都使用Storyboard去搭建,Storyboard也是一个很成熟的工具了。使用Storyboard去搭建所有界面,我们可以很迅捷地搭建出复杂的界面,也就是说能为我们节省大量的时间。我们还可以很直观地看出各个界面之间的关系,修改起来也很方便。将来如果遇到需要作修...
阅读全文
摘要:UITabBarController是IOS中很常用的一个viewController,例如系统的闹钟程序,ipod 程序等。UITabBarController通常作为整个程序的rootViewController,而且不能添加到别的container viewController中。 首先我们...
阅读全文
摘要:有一阵子没有写随笔,感觉有点儿手生。一个多月以后终于又一次坐下来静下心写随笔,记录自己的学习笔记,也希望能够帮到大家。 废话少说回到正题,UINavigationController是IOS编程中比较常用的一种容器view controller,很多系统的控件(如UIImagePickerView...
阅读全文
摘要:在storyboard中,segue有几种不同的类型,在iphone和ipad的开发中,segue的类型是不同的。在iphone中,segue有:push,modal,和custom三种不同的类型,这些类型的区别在与新页面出现的方式。而在ipad中,有push,modal,popover,repla...
阅读全文
摘要:一、UITabBarController在storyoard中得搭建1.新建一个项目,把storyboard中默认的控制器删除,拖UITab Bar Controller。2.创建viewcontroller,添加到UITab Bar Controller中去(连线)。注意点:连线的顺序就是将来显示...
阅读全文
摘要:一、简单介绍UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ、微信等应⽤。二、UITabBarController的使用1.使用步骤:(1)初始化UIT...
阅读全文
摘要:本系列文章中,我们将一起认识、了解当下 iOS 开发中几种常见的 UI 构建方式,分析他们分别适合的使用场景,以便让我们在以后的开发中,能够在恰当的时间、场景下做出最佳的选择,提升开发效率,增强程序的可维护性。本文作 为开篇,我们将一起尝试驾驭强大的 Storyboard。StoryBoard 的本...
阅读全文
摘要:Protocol(协议)用于统一方法和属性的名称,而不实现任何功能。协议能够被类,枚举,结构体实现,满足协议要求的类,枚举,结构体被称为协议的遵循者。遵循者需要提供协议指定的成员,如属性,方法,操作符,下标等。协议的语法协议的定义与类,结构体,枚举的定义非常相似,如下所示:protocolSomeP...
阅读全文
摘要:Swift 中的委托/代理模式(以下简称"代理模式")与object-c的代理模式基本一致。代理模式的基本思想就是将我(类或者结构体等)需要来完成的工作交给(委托给)另一个有我所规定的做这项工作能力的人(符合要求类型的对象等)来处理。代理模式的实现需借助于我们上一篇文章所讲的协议。我们定义一个协议来...
阅读全文
摘要:Swift中的协议 在object-c也称之为协议,但是在其他语言中可能被称之为接口Interface(比如说java中)还有可能被称之为纯虚函数。实际上都是一个意思。协议主要用来规定统一的方法和属性名称,但是不实现任何功能。只有实现了协议的类才需要实现他的功能。协议说通俗一点可以这样理解。比如US...
阅读全文
摘要:起因某日使用DKChainableAnimationKit的时候发现可以如下写代码:view.animation.rotate(180).anchorTopLeft.thenAfter(1.0).rotate(90).anchorCenter.animanimation无独有偶。Masonry其实也...
阅读全文
摘要:@看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interfaceXXX。@interface声明类@implementation实现类@protocol声明协议@optional与@protocol配合使用,说明协议中的某个或者某几个方法可以不实现@required与@...
阅读全文
摘要:在接触到开源项目 Masonry 后,里面的布局约束的链式写法让我颇感兴趣,就像下面这样:12345678UIEdgeInsetspadding=UIEdgeInsetsMake(10,10,10,10);[view1mas_makeConstraints:^(MASConstraintMaker*...
阅读全文
摘要:iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的区别及用途init-初始化程序viewDidLoad-加载视图viewWillAppear-UIViewCon...
阅读全文
摘要:在介绍静态属性之前,我们先来看一个类的设计,有一个Account(银行账户)类,假设 它有3个属性:amount(账户金额)、interestRate(利率)和owner(账户名)。在这3个属性中,amount和owner会因人而 异,不同的账户这些内容是不同的,而所有账户的interestRate...
阅读全文
摘要:与静态属性类似,Swift中还定义了静态方法,也称为类型方法,所谓“类型”是指枚举、结构体和类。静态方法定义的方法也是与静态属性类似的,枚举和结构体的静态方法使用的关键字是static,类的静态方法使用的关键字是class。一、结构体中静态方法下面我们先看一个结构体静态方法的示例,代码如下:[htm...
阅读全文
摘要:在ios4之后,引入了代码块的特性,在gcd中会经常的用到,所以决定好好的看看代码块文档,把这块总结一下。从头开始讲解代码块。1.声明和使用代码块一般用^操作符声明一个块变量,并作为块的开始符。而块的本身用{}包括起来,就像下面那样。int multiplier = 7;int (^myBlock)...
阅读全文
摘要:在两个不同的控制器之间传递数据,可以使用代理传值或者block传值。例子是一个简单通讯录。主界面如下:添加联系人界面查看/编辑联系人界面:默认是查看模式,点击编辑后进入编辑模式编辑模式数据更新成功。其中添加联系人界面的数据传递使用代理方式实现。编辑联系人界面的数据传递使用block实现。下面来看具体...
阅读全文
摘要:版权声明:原创作品,谢绝转载!否则将追究法律责任。一个Objective-c类定义了一个对象结合数据相关的行为。有时候,这使得他有意义的表达单个任务或者单元的行为。而不是集合的方法。blocks是语言的特性,我们可以在C C++ 和Objective-c看到,这允许你创建不同的代码片段,这代码片段可...
阅读全文
摘要:1.相关概念在这篇笔记开始之前,我们需要对以下概念有所了解。1.1 操作系统中的栈和堆注:这里所说的堆和栈与数据结构中的堆和栈不是一回事。我们先来看看一个由C/C++/OBJC编译的程序占用内存分布的结构:栈区(stack):由系统自动分配,一般存放函数参数值、局部变量的值等。由编译器自动创建与释放...
阅读全文
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 代码块本质上是和其他变量类似。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。脱字符(^)是块的语法标记。按照我们熟悉的参数语法规约所定义的返回值以及块的主体(也就是可以执行的代码)。...
阅读全文
摘要:BlockApple 在C, Objective-C,C++加上Block这个延申用法。目前只有Mac 10.6 和iOS 4有支持。Block是由一堆可执行的程序组成,也可以称做没有名字的Function(Anonymous function)。如果是Mac 10.6 或 iOS 4.0 之前的平...
阅读全文
摘要:iOS开发中,如果不进行适当的封装,使用协议或者继承类来进行开发,你就会遇到传说中的ViewController(以后简称VC) Hell的问题……比如说,我们先声网App中为了调用接口,做简单的判断,会有如下的垃圾代码(前辈遗留下来的):override func viewDidLoad() { ...
阅读全文
摘要:#import /* OC不同于Java C++ 它没有字符串对象 只有NS对象 NS就是乔布斯第一个公司NeXt的类集合 被收购之后才有了CG类集合 统一合并到Foundation框架 以及后来的Cocoa框架 QuartZ Cocoas-2d 3d框架... 一般来说 ObjC中的类不是NS就...
阅读全文
摘要:一、第一个界面// Created by 秦志伟 on 14-6-13.import UIKitclass ZWRootViewController: UIViewController { init(nibName nibNameOrNil: String?, bundle nibBundleO...
阅读全文
摘要:开发中央步骤: 1.添加CoreBluetooth.framework框架到你的工程 2.继承两个协议:CBCentralManagerDelegate和CBPeripheralDelegate 个人写的demo,有详细注释。看不懂的在提出来,这里就不做过多的解释了。 1 // 2 /...
阅读全文
摘要:Demo地址:WEBlueToothManager在写这个博客之前,空余时间抽看了近一个月的文档和Demo,系统给的解释很详细,接口也比较实用,唯独有一点,对于设备 的唯一标示,网上众说纷纭,在这里我目前也还没有自己的见解,只是在不断的测试各种情况,亲测同一设备的UUID对于每台iPhone设备都不...
阅读全文
摘要:今天看别人代码的时候发现这样的用法navigationController.viewControllers = @[secondViewController];这里用到了@[]。刚开始不是很明白,问了才知道,原来这是数组的初始化。是ios6之后引入的方式。mark下。@[] 初始化不可变数组@{...
阅读全文
摘要:一、@dynamic与@synthesize的区别@property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesize和@dynamic都没写,那么默认的就是@syntheszie var = _var; @synthesize的语义是如果你没有手动实...
阅读全文
摘要:最近做论坛功能,发帖的时候需要用到从相册中选取图片然后上传,由于每次上传图片的最大数量为9张,所以需要对图片进行压缩。开始时用了以前经常用的压缩的方法:[objc] view plaincopy //压缩图片质量 +(UIImage *)reduceImage:(UIImage *...
阅读全文
摘要:看过一些蓝牙App的事例,大体上对蓝牙的连接过程进行了了解。但是开始真正自己写一个小的BLE程序的时候就举步维艰了。那些模棱两可的概念在头脑中瞬间就蒸发了,所以还是决定从最基本的蓝牙连接过程进行。这里所说的蓝牙是针对 bluetooth 4.0的。 第一步就是去看官方的关于蓝牙框架的文档,即Cor...
阅读全文
摘要:闭包是功能性自包含模块,可以在代码中被传递和使用。 Swift 中的闭包与 C 和 Objective-C 中的 blocks 以及其他一些编程语言中的 lambdas 比较相似。闭包的形式主要有三种:1. 全局函数是一个有名字但不会捕获任何值的闭包2. 嵌套函数是一个有名字并可以捕获其封闭函数域内...
阅读全文
摘要:我们可用swift的闭包来定义变量的值。 先来一个简单的例子大家先感受感受。 定义一个字符串的变量的方法: 直接赋值var str="JobDeer"还可以用闭包的方式定义:var str:String={ return "JobDeer"}()闭包还可以这么定义,省略了等号和括号:varst...
阅读全文
摘要:*闭包(Closures)*闭包是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。*在Swift中的闭包与C、OC中的blocks和其它编程语言(如Python)中的lambdas类似。*闭包可以捕获和存储上下文中定义的的任何常量和变量的引用。这就是所谓的变量和变量的自封闭,*因此命名为”...
阅读全文
摘要:在同一个工程中是可以同时使用Swift和OC的,但不可以同时出现在同一个文件中。OC调用Swift相关信息的方法在***.m文件中导入工程名-Swift.h即可。如工程名为ABC,则在需要使用Swift相关信息的.m文件中#import "ABC-Swift.h"即可。Swift调用OC相关信息的方...
阅读全文
摘要:传值Blocks是C语言的扩充功能:带有自动变量(局部变量)的匿名函数。通过Blocks,源代码中就能使用匿名函数,即不带名称的函数。在我们 的工作中,命名占据了很大一部分,函数名,变量名,属性名,类名,框架名等都必须具备。能够编写不带名称的函数对程序员来说是具有相当吸引力的。Blocks 语法完整...
阅读全文
摘要:新换了台Macbook,又折腾了一遍Provisioning Profile证书,苹果的证书繁锁复杂,每次制作都相当麻烦,而且Provisioning Profile证书是与设备绑定的,所以更换开发环境后需要重新制作。Provisioning Profile证书这个东西是很有苹果特色的一个东西,一般...
阅读全文
摘要:一、生命周期 当一个视图控制器被创建,并在屏幕上显示的时候。代码的执行顺序1、alloc 创建对象,分配空间2、init(initWithNibName) 初始化对象,初始化数据3、loadView 从nib载入视图,通常这一步不需要去干涉。除非你没有使用xib文件创建视图4、vi...
阅读全文
摘要:本文翻译自苹果的文档,有删减,也有添加自己的理解部分。如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block为了方便对比,下面的代码我假设是写在ViewController子类中的1、第一部分定义和使用Block,?12345678910111213141516...
阅读全文
摘要:很多高级语言都支持匿名函数操作,在OC中的block也为大家所熟悉,然面在swift里好像是被重新作了一个定义,不叫匿名函数,或 block了,而叫闭包(closure)。下面配合代码来理解一下swift的闭包强大之处。使用系统的一个sort排序方法来演示一下闭包的使用,引 用官网的事例//闭包(即...
阅读全文
摘要:本文翻译自苹果的文档,有删减,也有添加自己的理解部分。如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block为了方便对比,下面的代码我假设是写在ViewController子类中的1、第一部分定义和使用Block,- (void)viewDidLoad{ ...
阅读全文
摘要:本文翻译自苹果的文档,有删减,也有添加自己的理解部分。如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block为了方便对比,下面的代码我假设是写在ViewController子类中的1、第一部分定义和使用Block,?12345678910111213141516...
阅读全文
摘要:使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值:先说一下思想:首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界...
阅读全文
摘要:初学Objective-C的朋友都有一个困惑,总觉得对Objective-C的内存管理机制琢磨不透,程 序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对Objective-C内存管理机制的研究成果和经验,写了这么一个由浅入深的教程。希望对大家有 所帮助,也欢迎大家一起探讨。系统自动创建新的aut...
阅读全文
摘要:初学Objective-C的朋友都有一个困惑,总觉得对Objective-C的内存管理机制琢磨不透,程 序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对Objective-C内存管理机制的研究成果和经验,写了这么一个由浅入深的教程。希望对大家有 所帮助,也欢迎大家一起探讨。@property (...
阅读全文
摘要:我们在前一章介绍了block的用法,而正确使用block必须要求正确理解block的内存管理问题。这一章,我们只陈述结果而不追寻原因,我们将在下一章深入其原因。一、block放在哪里我们针对不同情况来讨论block的存放位置:1.栈和堆以下情况中的block位于堆中:voidfoo(){__bloc...
阅读全文
摘要:ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发。讨论范围:block的使用,内存管理,内部实现。不包含的内容:gc arc下的block内存,block在c++中的使用。一、概述Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C...
阅读全文
摘要:block结构体相应的也有一个成员引用,这样会增加对局部变量的 _para1引用,在Block销毁的时候引用就释放掉了我们了解到了用__block修饰的变量,可以在block内部修改,__block变量其实对应一个结构体struct__Block_byref__para1_0{void*__isa;...
阅读全文
摘要:ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发。讨论范围:block的使用,内存管理,内部实现。不包含的内容:gc arc下的block内存,block在c++中的使用。AD:【活动】Web和APP兼容性实战 Win10训练营免费报名 一、概述Block是C级别...
阅读全文
摘要:假设你现在就是一个iOS程序员,你对Objective-C很熟悉,对iOS开发也很熟悉,然而,苹果公司在iOS 8之后推出了Swift语言。那么,如何才能快速地从Objective-C过渡到Swift呢?本章我们将重点讲解如何从Objective-C过渡到Swift,如何利用现有的Objective...
阅读全文
摘要:前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但具体怎么做,它不关心。当 一个类要使用某一个Protocol(协议)时,都必须要遵守协议。比如有些必...
阅读全文
摘要:Objective-C委托和协议本没有任何关系,协议如前所述,就是起到C++中纯虚类的作用,对于“委托”则和协议没有关系,只是我们经常利用协议还实现委托的机制,其实不用协议也完全可以实现委托。AD:【活动】Web和APP兼容性实战 Win10训练营免费报名 Objective-C中委托和协议是本文要...
阅读全文
摘要:单例模式用于当一个类只能有一个实例的时候, 通常情况下这个“单例”代表的是某一个物理设备比如打印机,或是某种不可以有多个实例同时存在的虚拟资源或是系统属性比如一个程序的某个引擎或是数据。用单例模式加以控制是非常有必要的。单例模式需要达到的目的1. 封装一个共享的资源2. 提供一个固定的实例创建方法3...
阅读全文
摘要:什么是CategoryCategory模式用于向已经存在的类添加方法从而达到扩展已有类的目的,在很多情形下Category也是比创建子类更优的选择。新添加的方法 同样也会被被扩展的类的所有子类自动继承。当知道已有类中某个方法有BUG,但是这个类是以库的形式存在的,我们无法直接修改源代码的时 候,Ca...
阅读全文
摘要:委托(delegate)也叫代理是iOS开发中常用的设计模式。我们借助于protocol(参考博文:objective-c协议(protocol))可以很方便的实现这种设计模式。什么是代理?苹果的官方文档给了很清晰的解释:Delegation is a simple and powerful pat...
阅读全文
摘要:Modol View Controller(MVC)是一种最早的也是最成功的可重用的设计模式,70年代的时候首次在smaltalk编写的程序中成功使用。基于MVC设计 模式,Cocoa整体架构可以划分为三个子系统:Model, View, Controller,我们可以相应的理解为:数据模型,视图和...
阅读全文
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。协议(protocol)是Objective-c中一个非常重要的语言特性,从概念上讲,非常类似于JAVA中接口. 一个协议其实就是一系列有关联的方法的集合(为方便后面叙述,我们把这个协议命名为myProtocol)。协议中的方法并不是由协议本身去实...
阅读全文
摘要:1、分类(category)使用Object-C中的分类,是一种编译时的手段,允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到,这点和javascript中使用原型来定义属性有点类似。我们可以为一个类创建一个新的方法,而不需...
阅读全文
摘要:1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用)其实在代码里还是可以设置的,那就是删除背景view[[self.searchBar.subviews objectAtIndex:0] removeFromS...
阅读全文
摘要:BabyBluetooth 是一个最简单易用的蓝牙库,基于CoreBluetooth的封装,并兼容ios和mac osx。特色:基于原生CoreBluetooth框架封装的轻量级的开源库,可以帮你更简单地使用CoreBluetooth API。CoreBluetooth所有方法都是通过委托完成,代码...
阅读全文
摘要:再上一节说了app作为central连接peripheral的情况,这一节介绍如何使用app发布一个peripheral,给其他的central连接还是这张图,central模式用的都是左边的类,而peripheral模式用的是右边的类peripheral模式的流程1. 打开peripheralMa...
阅读全文
摘要:上一篇文章介绍了蓝牙的技术知识,这里我们具体说明一下中心模式的应用场景。主设备(手机去扫描连接外设,发现外设服务和属性,操作服务和属性的应用。一般来说,外设(蓝牙设备,比如智能手环之类的东西), 会由硬件工程师开发好,并定义好设备提供的服务,每个服务对于的特征,每个特征的属性(只读,只写,通知等等)...
阅读全文
摘要:蓝牙常见名称和缩写MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备BLE ==== buletouch low energy,蓝牙4.0设备因为低耗电,所以也叫做BLEperipheral,central == 外设和中心,发起连接的时ce...
阅读全文
摘要:The easiest way to use Bluetooth (BLE )in ios,even bady can use. 简单易用的蓝牙库,基于CoreBluetooth的封装,并兼容ios和mac osx.为什么使用它?1:基于原生CoreBluetooth框架封装的轻量级的开源库,可以帮...
阅读全文
摘要:1建立中心角色123#import CBCentralManager *manager; manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; 2扫描外设(discover)[manager scanForPer...
阅读全文
摘要:IOS学习也一段时间了,该上点干货了。前段时间研究了一下IOS蓝牙通讯相关的东西,把研究的一个成果给大家分享一下。一 项目背景简单介绍一下做的东西,设备是一个金融刷卡器,通过蓝牙与iphone手机通讯。手机端的app通过发送不同的指令(通过蓝牙)控制刷卡器执行一些动作,比如读磁条卡,读金融ic卡等。...
阅读全文
摘要:最近一直在学 iOS 开发,所以专门创建了这样一个类别,将自己学习中的一些问题整理,记录下来。由于自己是初学者,所以所写的文章非常基础,写这个类别一是为了给自己留下存 档,二是为了给和我有同样问题的初学者留下一些学习的线索,三是希望在整理这些文章的过程中可以看到自己一点点的进步。今天整理的问题是关于...
阅读全文
摘要:全局变量历来就是很好的东西,能够在开发中带来很多方便,下面来介绍一下iPhone中软件开发时全局变量的使用方法:一、新建Constants.h文件(文件名根据需要自己取),用于存放全局变量;二、在Constants.h中写入你需要的全局变量名,例如:Object-C代码NSString*master...
阅读全文
摘要:1、先来几个常用的: 01// 是否高清屏02#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UISc...
阅读全文
摘要:NSString *dictString = [dict JSONFragment];//组合成的。 用这个就行了。。。 dictString==={"content":"Sadgfdfg","phoneno":"","email":"1049055935@qq.com"}=== ...
阅读全文
摘要:新建一个Category,命名为UIColor+Hex,表示UIColor支持十六进制Hex颜色设置。UIColor+Hex.h文件,?1234567891011121314#import#defineRGBA_COLOR(R,G,B,A)[UIColorcolorWithRed:((R)/255....
阅读全文
摘要:首先,Swift 为类定义了两种初始化器来确保类中所有的储存属性都能得到一个初始化值。这两种初始化器就是「指定初始化器」(Designated Initializer)与「便利初始化器」(Convenience Initializer)。指定初始化器与便利初始化器指定初始化器是类的最主要的初始化器,...
阅读全文
摘要:初始化是类,结构体和枚举类型实例化的准备阶段。这个阶段设置这个实例存储的属性的初始化数值和做一些使用实例之前的准备以及必须要做的其他一些设置工作。通过定义构造器(initializers)实现这个实例化过程,也就是创建一个新的具体实例的特殊方法。和Objective-C不一样的是,Swift的构造器...
阅读全文
摘要:IOS学习笔记(十)之UIImageView图片视图的基本概念和使用方法(博客地址: http://blog.csdn.net/developer_jiangqq ) Author:hmjiangqq Email:jiangqqlmj@163.comUIImageView: 作用:专门用于显...
阅读全文
摘要:1、 三角函数double sin (double); 正弦double cos (double);余弦 double tan (double);正切2 、反三角函数 double asin (double); 结果介于[-PI/2, PI/2] double acos (double)...
阅读全文
摘要:一、NSString创建字符串。NSString*astring=@"ThisisaString!";创建空字符串,给予赋值。NSString*astring=[[NSStringalloc]init];astring=@"ThisisaString!";NSLog(@"astring:%@",as...
阅读全文
摘要:三角函数定义把角度θ作为自变量,在直角坐标系里画个半径为1的圆(单位圆),然后角的一边与X轴重合,顶点放在圆心,另一边作为一个射线,肯定与单位圆相交于一点。这点的坐标为(x,y)。sin(θ)=y;cos(θ)=x;tan(θ)=y/x;三角函数公式大全两角和公式sin(A+B) = sinAcos...
阅读全文
摘要:1 协议: 协议,类似于Java或C#语言中的接口,它限制了实现类必须拥有哪些方法。它是对对象行为的定义,也是对功能的规范。在写示例之前我给大家说下@required和@optional这两个关键字他们两个是在声明协议的时候用到,@required是必须实现的方法,要不会报黄色警告.@optiona...
阅读全文
摘要:前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但具体怎么做,它不关心。当 一个类要使用某一个Protocol(协议)时,都必须要遵守协议。比如有些必...
阅读全文
摘要:1.创建数组[objc] view plaincopy//创建一个空的数组NSArray*array=[NSArrayarray];//创建有1个元素的数组array=[NSArrayarrayWithObject:@"123"];//创建有多个元素的数组array=[NSArrayarrayWit...
阅读全文
摘要:/*---------------------NSArray---------------------------*///创建数组NSArray*array1=[NSArrayarrayWithObject:@"1"];NSArray*array2=[NSArrayarrayWithObjects:...
阅读全文
摘要:在进行Android应用开发的时候,我们有时候需要查看某个类或接口的源码从而了解如何去使用一个类或者实现一个接口,查看源码有助于我们的学习某个封装的类的底层是如何实现的,这样可以帮助我们掌握类或者接口的优秀设计方法,从而提高自己编写的代码的质量,另外,我们在编写应用程序过程中可以通过查看某个类的源...
阅读全文
摘要:frame.origin.x 的意思和作用? scrollView.frame一个view的frame 包含它的矩形形状(size)的长和宽。和它在父视图中的坐标原点(origin)x和y坐标 frame 框架origin就是所謂的起點位置frame在ios里并不是一个具体的对象,他只是一些控件的一...
阅读全文
摘要:搞iOS开发的童鞋基本都会用过UIView,那他的bounds和frame两个属性也不会陌生,那这两个有什么实质性的区别呢?先看到下面的代码你肯定就明白了一些:-(CGRect)frame{returnCGRectMake(self.frame.origin.x,self.frame.origin....
阅读全文
摘要:标题中所说的3个方法,都是UIViewController的方法,跟UIViewController的view属性的生命周期息息相关。接下来我会一一阐述它们的作用以及它们之间的联系。loadView1.什么时候被调用?每次访问UIViewController的view(比如controller.vi...
阅读全文
摘要:当你的APP需要一些新功能时,自定义UI控件会十分有用,尤其是这些自定义控件可以在其他APP里面很好的重用。Colin Eberhart写过一篇很棒的介绍自定义UI控件的教程。这个教程涉及的是一个继承自UISlider类的自定义控件的生成;该控件的功能是给定一个(滑动)范围供(用户滑动)选择,并返回...
阅读全文
摘要:iOS开发之自定义View是本文要将介绍的内容,iOS SDK中的View是UIView,我们可以很方便的自定义一个View。创建一个 Window-based Application程序,在其中添加一个Hypnosister的类,这个类选择继承UIObject。修改这个类,使他继承:UIView@...
阅读全文
摘要:本文译自 How to build a custom control in iOS 。大家要是有什么问题,可以直接在 twitter 上联系原作者,当然也可以在最后的评论中回复我。在开发过程中,有时候UIKit的标准控件并不能满足我们的需求,例如你需要一个控件能支持用户方便的选择0-360°之间的一...
阅读全文
摘要:第一部分UIKit提供了一组控件:UISwitch开关、UIButton按钮、UISegmentedControl分段控件、UISlider滑块、UITextField文本字段控件、UIPageControl分页控件。控件是对UIView派生类的实用增强及补充,并可以直接附着于导航栏、表格单元,甚至...
阅读全文
摘要:前言一个控件从外在特征来说,主要是封装这几点:交互方式显示样式数据使用对外在特征的封装,能让我们在多种环境下达到 PM 对产品的要求,并且提到代码复用率,使维护工作保持在一个相对较小的范围内;而一个好的控件除了有对外一致的体验之外,还有其内在特征:灵活性低耦合易拓展易维护通常特征之间需要做一些取舍,...
阅读全文
摘要:一、第一种方式1.简单说明以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的DrawRect:方法,然后在该方法中画图。绘制图形的步骤:(1)获取上下文(2)绘制图形(3)渲染图形如果在layer上画东西,与上面的过程类似。代码示例:新建一个...
阅读全文
摘要:一、position和anchorPoint1.简单介绍CALayer有2个非常重要的属性:position和anchorPoint@property CGPoint position;用来设置CALayer在父层中的位置以父层的左上角为原点(0, 0)@property CGPoint ancho...
阅读全文
摘要:一、添加一个图层添加图层的步骤:1.创建layer2.设置layer的属性(设置了颜色,bounds才能显示出来)3.将layer添加到界面上(控制器view的layer上) 1 // 2 // YYViewController.m 3 // 01-创建一个简单的图层 4 // 5 // Cr...
阅读全文
摘要:一、简单介绍在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象)...
阅读全文
摘要:我一般情况下不会使用interface builder去画界面,而是用纯代码去创建界面,不是装B,而是刚从vi转到xcode不久,不太习惯interface builder而已。当然如果需要我也会使用它。一个东西的存在没有绝对的好与坏,只是存在时间与空间决定了它的价值。(忘了讲了,我的环境是xcod...
阅读全文
摘要:一、position和anchorPoint1.简单介绍CALayer有2个非常重要的属性:position和anchorPoint@property CGPoint position;用来设置CALayer在父层中的位置以父层的左上角为原点(0, 0)@property CGPoint ancho...
阅读全文
摘要:有时候,知道initWithFrame方法如何用,但是么有弄明白initWithFrame方法到底是什么? 那就通过查资料弄明白。1.initWithFrame方法是什么?initWithFrame方法用来初始化并返回一个新的视图对象,根据指定的CGRect(尺寸)。当然,其他UI对象,也有init...
阅读全文
摘要:引言 相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与position有什么关系? 我也迷惑过,找过网上的教程,大部分...
阅读全文
摘要:实现一张图片的旋转部分角度显示:[cpp] view plaincopyUIImageView*image=[[UIImageViewalloc]init];image.frame=CGRectMake(50,50,200,200);image.image=[UIImageimageNamed:@"...
阅读全文
摘要:互用性是让 Swift 和 Objective-C 相接合的一种特性,使你能够在一种语言编写的文件中使用另一种语言。当你准备开始把 Swift 融入到你的开发流程中时,你应该懂得如何利用互用性来重新定义并提高你写 Cocoa 应用的方案。互用性很重要的一点就是允许你在写 Swift 代码时使用 Ob...
阅读全文
摘要:很多Github的库经过很多年的发展,源码都是OC写的,,所以,用Swift调用OC的库就是开发中难免遇到的的一个问题,本文以AFNetworking为例,讲解如何跨语言调用。第一步 创建一个空的工程 注意,语言选择Swift 第二步,创建bridging-header 这个文件的作用,就是把O...
阅读全文
摘要:swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编。这个在IOS8中是允许的。先中简单的入手,先研究在同一个工程目录下混合使用的情况。为了演示。先准备两个类第一个是swift语言...
阅读全文
摘要:1、在安装Ubuntu14.4时,遇到如果先分出 / 跟挂载的主分区时,后面只能再分一个swap,或者挂载一个/home,或者一个/ boot 时不能继续分区,当然想安装也是不能不能成功的。解决办法:在这里先不要创建 / 的主挂载分区,应该先创建好其他的swap,boot,home后再创建/的跟挂载...
阅读全文
摘要:苹果发布的Swift语言可以和之前的Objective-C语言同时存在于一个项目中。可能有人会认为是同一个类文件中既可以有Objective-C也可以有Swift,这是不对的。同一个类文件或同一个代码块中,不可以同时有这两个语言的代码,而是单独的Swift类文件或Objective-C类文件之间可以...
阅读全文
摘要:Java的类库支持完全不如C#,比如时间类,比如数据类型转换类等等,难道是我自己没找到吗?下面是字节转换类,byte[]与short, int, long, float, double, String相互转换;网络字节序htons, htonl等实现;byte[]转十六进制字符串、二进制字符串实现。...
阅读全文
摘要:UltraISO软碟通是一款功能强大、方便实用、老牌优秀的光盘映像文件制作/编辑/转换工具:可直接编辑ISO文件,从ISO中提取文件和目录;也可从CD – ROM制作光盘映像或者将硬盘上的文件制作成ISO文件;还可处理ISO的启动信息,制作可引导光盘。使用UltraISO,可随心所欲地制作/编辑/转...
阅读全文
摘要:在Objective-c中定义类时,也可以使用类似于C++中public、private来修饰成员变量,如下:[cpp] view plaincopy@intterfaceTest:NSObject{@publicinti;intj;@protectedfloatm;floatn;@privated...
阅读全文
摘要:category是Objective-c里面最常用的功能之一。category可以为已经存在的类增加方法,而不需要增加一个子类。类别接口的标准语法格式如下:[cpp] view plaincopy#import"类名.h"@interface类名(类别名)//新方法的声明@end类别实现如下:[cp...
阅读全文
摘要:一、类的继承Objective-c中类的继承与C++类似,不同的是Objective-c不支持多重继承,一个类只能有一个父类,单继承使Objective-c的继承关系很简单,易于管理程序。Objective-c中所有类的父类是NSObject。Objective-c中类的继承例子:[cpp] vie...
阅读全文
摘要:协议的作用类似地C++中对抽象基类的多重继承。类似于Java中的接口(interface)的概念。 协议是多个类共享方法的列表,协议中列出的方法在本类中并没有相应实现,而是别的类来实现这些方法。 如果一个类要遵守一个协议,该类就必须实现特定协议的所有方法(可选方法除外). 定义一个协议需要使用@pr...
阅读全文
摘要:在Objective-c中,使用@property来标识属性(一般是实例变量)。在实现文件中使用@synthesize标识所声明的变量,让系统自动生成设置方法和获取方法。 也就是说@property和@synthesize配对使用,让系统自动生成设置方法和获取方法。 例:Test.h[c...
阅读全文
摘要:这里列出Objective-c中独有数据类型:一、字符串 在Objective-c中,字符串常量是由@和一对从引号括起的字符串序列。比如:@"China"、@"objective-c"等都是合法的字符串常量。二、id类型 id类型是Objective-c中一个比较独特类型。 在概念上、类似Ja...
阅读全文
摘要:在用@interface声明类之后,可以使用@implementation进行实类的实现。类的实现的具体语法如下:[cpp] view plaincopy@implementation类名方法实现代码;@end;实例:[cpp] view plaincopy@implementationPerson...
阅读全文
摘要:在书写了类的声明和实现后,应用程序如何去调用它呢? 在Objective-c中,调用方法的简单格式如下: 1⃣ [实例 方法]; 如: [person setAge:32]; 其中 person是Person类的实例。 或者是: 2⃣ [类名 方法名]; 如:NSS...
阅读全文
摘要:类是Objective-c的核心,Objective-c程序都是围绕类进行的。Objective-c程序至少包含以下三个部分: 1、类接口:定义了类的数据和方法,但是不包括方法的实现代码。 2、类实现:仓储 了实现类方法的代码。 3、应用程序:调用类来完成一些实际操作的应用程序。 ...
阅读全文
摘要:在Objective-c中如何定义一个类呢?我们可以使用下面的格式进行表示:[cpp] view plaincopy@interface类名:父类名{变量定义;}方法定义;@end;下面给出一个实例:[cpp] view plaincopy@interfacePerson:NSObject{NSSt...
阅读全文
摘要:以下voidprint();};classAC{};这时候,AI和AC是独立存在,AC不会因为没有和AI建立关系而编译错误,将AC做以下修改后,AI才和AC建立了关系,AC必须实现AI中声明的方法才能通过编译。[html] view plaincopyprint?classACimplementAI...
阅读全文
摘要:.c和.h文件的区别一个简单的问题:.c和.h文件的区别学了几个月的C语言,反而觉得越来越不懂了。同样是子程序,可以定义在.c文件中,也可以定义在.h文件中,那这两个文件到底在用法上有什么区别呢?2楼:子程序不要定义在.h中。函数定义要放在.c中,而.h只做声明.否则多引用几次,就会发生函数重复定...
阅读全文
摘要:最近更新的一批app,好多都采用了圆盘转动的效果,比如:百度音乐、当当,大概效果如下:看看这个是怎么实现的吧。一、视图元素布局首先需要明确,这些视图元素是分布在一个圆周上的,通过滑动位置,以圆周中心旋转相应角度,那么该怎么布局呢?如果把白色圆盘和小人视图分开,就需要代码控制,倾斜角度,然后add到父...
阅读全文
摘要:如你所知,我们在iOS应用中看到的都是视图(view),包括按钮视图、表视图、滑动条视图,还有可以容纳其他视图的父视图等。AD:【活动】Web和APP兼容性实战 Win10训练营免费报名 如你所知,我们在iOS应用中看到的都是视图(view),包括按钮视图、表视图、滑动条视图,还有可以容纳其他视图的...
阅读全文
摘要:12345// 十进制转化为十六进制,结果为C8。Integer.toHexString(200);// 十六进制转化为十进制,结果140。Integer.parseInt("8C",16);
阅读全文
摘要:先来了解一些概念:1.RGB是一种加色模型,就是将不同比例的Red/Green/Blue混合在一起得到新颜色.通常RGB颜色模型表示为:2.HSB(HSV) 通过色相/饱和度/亮度三要素来表达颜色. H(Hue):表示颜色的类型(例如红色,绿色或者黄色).取值范围为0—360.其中每一个值代表一种颜...
阅读全文
摘要:1前言 自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用 的过程,所以在不同的应用领域中为了更好更准确的满足各自的需求,就出现了各种各样的色彩空间模型来量化的描述颜色。我们比较常接触到的就包括 RGB /...
阅读全文
摘要:1665年,牛顿(Isaac Newton)进行了太阳光实验,让太阳光通过窗板的小圆孔照射在玻璃三角棱镜上,光束在棱镜中折射后,扩散为一个连续的彩虹颜色带,牛顿称之为光谱,表示连续的可见光谱。而可见光谱只是所有电磁波谱中的一小部分。牛顿认为白光(太阳光)使复杂的,由无数种不同的光线混合,各种光线在玻...
阅读全文
摘要:目前在计算机视觉领域存在着较多类型的颜色空间(color space)。HSL和HSV是两种最常见的圆柱坐标表示的颜色模型,它重新影射了RGB模型,从而能够视觉上比RGB模型更具有视觉直观性。HSV颜色空间 HSV(hue,saturation,value)颜色空间的模型对应于圆柱坐标系中的一个圆锥...
阅读全文
摘要:HSL 和 HSV(也叫做 HSB)是对RGB 色彩空间中点的两种有关系的表示,它们尝试描述比 RGB 更准确的感知颜色联系,并仍保持在计算上简单。HSL 表示 hue(色相)、saturation(饱和度)、lightness(亮度),HSV 表示 hue、 saturation、value 而 ...
阅读全文
摘要:一般的3D编程只需要使用RGB颜色空间就好了,但其实美术人员更多的是使用HSV(HSL),因为可以方便的调整饱和度和亮度。有时候美术需要程序帮助调整饱和度来达到特定风格的渲染效果,这时候就需要转换颜色空间了。出处:http://zh.wikipedia.org/wiki/HSL%E5%92%8CHS...
阅读全文
摘要:RGB三原色是基于人肉眼对光线的生理作用。人眼内有三种椎状体“对这三种光线频率所能感受的带宽最大,也能独立刺激这三种颜色的受光体”,因 此RGB称为三原色。比如,黄色波长的光对人眼的刺激效果,和红色与绿色同时刺激人眼相同,所以,对人来说R+G=yellow,即 (255,255,0).相对于RGB,...
阅读全文
摘要:IntroductionWhy an article on "colors"? It's the same question I asked myself before writing this series.The fact is, in .NET, there are only two colo...
阅读全文
摘要:★ 相同点: 1. 都是地址的概念; 指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。 ★ 区别: 1. 指针是一个实体,而引用仅是个别名; 2. 引用使用时无需解引用(*),指针需要解引用; 3. 引用只能在定义时被初始化一次,之后不可变;指针可变; 引用“从一而终” ^_^ 4...
阅读全文
摘要:由于跟人比较喜欢研究关于图层与动画方面的技术,正打算看看别人写的好东西,就遇到了好几个问题,第一:UIClor类方法的使用就是关于UIColor的使用,记得之前开发中我们使用的都是UIColor后面直接食用类方法获取颜色活着使用+ (UIColor *)colorWithRed:(CGFloat)r...
阅读全文
摘要:#pragma mark -#pragma mark - 缩放处理+ (UIImage *)scaleImage:(UIImage *)image withScale:(float)scale{ UIGraphicsBeginImageContext(CGSizeMake(image.size...
阅读全文
摘要:编辑图片的几个方法第一种先用UIImage对象加载一张图片然后转化成CGImageRef放到CGContext中去编辑第二种用CGImageCreate函数创建CGImageRef然后把CGImageRef放到CGContext中去编辑第三种用CGImageCreateCopy 或者 CGImag...
阅读全文
摘要:Swift提供了一种高性能的,兼容Unicode编码的String实现作为标准库的一部分。在 Swift2中,String类型不再遵守CollectionType协议。在以前,String类型是字符的一个集合,类似于数组。现 在,String类型通过一个characters属性来提供一个字符的集合。...
阅读全文
摘要:本文转载自:http://blog.csdn.net/zhoutao198712/article/details/20864143在Github上看到一些进度条的功能,都是通过Core Graph来实现。无所谓正确与否,但是开发效率明显就差很多了,而且运行效率还是值得考究的。其实使用苹果提供的Cor...
阅读全文
摘要:原文链接 : How To Implement A Circular Image Loader Animation with CAShapeLayer原文作者 : Rounak Jain译文出自 : 开发技术前线 www.devtf.cn译者 : Sam Lau校对者: Lollypo状态 : 校正...
阅读全文
摘要:时至今日,iOS 应用商店已经拥有超过了140万 应用,让你自己的应用脱颖而出确实是个不小的挑战。不过,在你的应用掉入默默无闻的大黑洞之前,你拥有一个小小的机遇窗,它能帮你吸引用户的注意。AD:时至今日,iOS 应用商店已经拥有超过了140万 应用,让你自己的应用脱颖而出确实是个不小的挑战。不过,在...
阅读全文
摘要:通常我们使用系统自带的UIButton时,一般都是Rect矩形形式的,或则美工给出一张半圆弧的按钮,如图为一张半圆加三角形的按钮,而此时,如果给按钮添加点击事件时,响应事件依然为矩形区域,不符合我们的需求;本文为解决这样的按钮问题:如下图:使用CAShapeLayer和UIBezierPath画了一...
阅读全文
摘要:我一般情况下不会使用interface builder去画界面,而是用纯代码去创建界面,不是装B,而是刚从vi转到xcode不久,不太习惯interface builder而已。当然如果需要我也会使用它。一个东西的存在没有绝对的好与坏,只是存在时间与空间决定了它的价值。(忘了讲了,我的环境是xcod...
阅读全文
摘要:这篇教程主要内容展示如何利用Core Graphics Framework画圆圈,当用户点击屏幕时随机生成不同大小的圆,这篇教程在Xcode6和iOS8下编译通过。打开Xcode,新建项目选择Single View Application,Product Name填写iOS8SwiftDrawing...
阅读全文
摘要:首先在 UITableViewCell.h 中声明一个代理@protocol UITableViewCellSlideDelegate @optional- (void)tableView:(UITableView *)tableView slideToRightWithIndexPath:(NSI...
阅读全文
摘要:在调用视图的 Quartz 调用都可以正确地在视图中描画。 视图对象通过 bounds 、和 center 属 性声明来跟踪自己的大小和位置。frame 属性包含一个矩形,即边框矩形,用于指定视图相对于其父视图坐标系统的位置和大小。bounds 属性也包含一个矩形,即边界矩形,负责定义视图相对于本地...
阅读全文
摘要:首先了解一下CGContextRef:An opaque type that represents a Quartz 2D drawing environment.Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中...
阅读全文
摘要:最近看了看CoreGraphics的东西,看到关于CGColor的东西,于是就想着顺便看看UIColor,CIColor,弄清楚它们之间的区别和联系。下面我们分别看看它们三个的概念:一、UIColor UIColor是UIKit中存储颜色信息的一个重要的类,一个UIColor对象包含了颜色和透...
阅读全文
摘要:昨天写了个用到截屏功能的插件,结果问题不断,今天终于解决好了,把debug过程中所有尝试过的截屏方法都贴出来吧~第一种这是iOS 3时代开始就被使用的方法,它被废止于iOS 7。iOS的私有方法,效率很高。#importextern"C"CGImageRefUIGetScreenImage();UI...
阅读全文
摘要:有时候,出于性能或可移植性的考虑,需要在iOS项目中使用到C++。假设我们用C++写了下面的People类:////People.h//MixedWithCppDemo////CreatedbyJasonLeeon12-8-18.//Copyright(c)2012年JasonLee.Allrigh...
阅读全文
摘要:有时候,单独对一张图像进行处理是很难或者根本达不到我们想要的效果的。一个好的滤镜效果的诞生,往往要经过很多复杂步骤、细致微调、图片应用效果观察以及很多图层叠加。我在JSWidget上发现了一些常用混合算法,对应着一些常用混合模式,通过这些blend modes,我们可以指定两张图像如何混合。不过在此...
阅读全文
摘要:关于图像处理中的卷积运算,这里有两份简明扼要的介绍:文一,文二。其中,可能的一种卷积运算代码如下:[cpp] view plaincopy-(UIImage*)applyConvolution:(NSArray*)kernel{CGImageRefinImage=self.CGImage;CFDat...
阅读全文
摘要:最近在稍微做一些整理,翻起这部分的代码,发现是两个多月前的了。这里讨论的是基于RGBA模型下的图像处理,即将变换作用在每个像素上。代码是以UIImage的category形式存在的:[cpp] view plaincopytypedefstruct_singleRGBA{unsignedcharre...
阅读全文
摘要:IOS中对图片进行重绘处理的方法总结一、CGImageRef是什么CGImageRef是定义在QuartzCore框架中的一个结构体指针,用C语言编写。在CGImage.h文件中,我们可以看到下面的定义:?1typedefstructCGImage*CGImageRef;CGImageRef 和st...
阅读全文
摘要:今天在公司的代码里看到通过 UIBezierPath 绘制 CALayer 然后实现中空的正方形,感觉还挺有意思的,简单记录一下 UIBezierPath 这个东西。一条线我们自定义一个 BezierView 继承自 UIView ,并重写它的 drawRect 方法实现绘图操作。import UI...
阅读全文
摘要:看到苹果Health里的折线图了吗。我们就是要打造一个这样的折线图。没看过的请看下图。我们的主题在于折线图本身。其他的包括步数、日平均值等描述类的内容这里就不涉及了。首先观察,这个图种包含些什么组成部分。线?这个太明显都看见了。还有每个节点的小圆圈,还有折线图里从上到下的渐变。这里是白色的从上到下逐...
阅读全文
摘要:先来看下效果 下拉刷新其实下拉刷新没大家想得那么难。本文已第二个为例子。给大家讲解下下拉刷新的做法(完整代码后面会放上)首先,先搞一个single View Application 。然后进Main.storyboard中,选中viewController t1.png按照图中方法,加一个导航。 然...
阅读全文
摘要:OS SWIFT基本画图教程其实这是以前做过的一个例子,方便自己参考的代码!希望对大家也有点参考.首先,建立一个Swift类,继承UIView这个类,然后重写funcdrawRect(rect:CGRect)其次,获取画笔的上下文varcontext:CGContextRef=UIGraphicsG...
阅读全文
摘要:上一篇博客中 2015继续任性——不会Git命令,照样玩转Git我 们简单的介绍了在VS2013中使用Git,和GitHub客户端的使用。那么使用Git到底有什么好处呢?最为明显的是支持Git代码托管的平台比较 多,而且都是免费的。今天就为大家推荐几款比较火的Git代码托管平台,欢迎大家补充。不过,...
阅读全文
摘要:http://www.00red.com/ http://www.cnblogs.com/kenshincui/ 优秀的某博客,包含大量iOS的全面的总结 https://github.com/CocoaChina-editors/Welcome-to-Swift 这里重点,为IOS编程 swift
阅读全文
摘要:一、常规主题色使用点应用在发布前都会对其主题色进行设置,以统一应用的风格(可能有多套主题)。在主题色设置上有几个方面,如下:1.TabBar部分,设置图片高亮、文本高度颜色2.NavigationBar部分,设置导航栏颜色及字体颜色3.应用标签等,设置字体的颜色4.应用图片主题色主题色的设置点,大体...
阅读全文
摘要:(via:破船之家,原文:How To Make a Custom Control in Swift)用户界面控件是所有应用程序重要的组成部分之一。它们以图形组件的方式呈现给用户,用户可以通过它们与应用程序进行交互。苹果提供了一套控件, 例如 UITextField,UIButton,UISwitc...
阅读全文
摘要:又做完一个项目,遂到了写帖时间了,要跟大家分享的是:自定义UISlider的图片和滑块,先看一下效果: 然后是实现了,我们使用的是UISlider的setMinimumTrackImage,和setMaximumTrackImage方法来定义图片 的,这两个方法可以设置滑块左边和右边的图片的,不过如...
阅读全文
摘要:一、NSString创建字符串。NSString*astring=@"ThisisaString!";创建空字符串,给予赋值。NSString*astring=[[NSStringalloc]init];astring=@"ThisisaString!";NSLog(@"astring:%@",as...
阅读全文
摘要:http://www.infoq.com/cn/articles/java-memory-model-5 深入理解Java内存模型(五)——锁http://www.ibm.com/developerworks/cn/java/j-jtp10264/ Java 理论与实践: JDK 5.0 中更灵活、...
阅读全文
摘要:在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制。1.对象的锁所有对象都自动含有单一的锁。JVM负责跟踪对象被加锁的次数。如果一个对象被解锁,其计数变为0。在任务(线程)第一次给对象加锁的时候,计数变为1。每当这个相同的任务(线程)在此对象上获得锁时,计数会递增。只有首先获得锁的任务(线程)...
阅读全文
摘要:enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。 下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容:1. 原始的接口定义常量2. 语法(定义)3. 遍历、switch 等常用操作4. enum 对象的常用方法介绍5...
阅读全文
摘要:很多 Java™ 语言方法,例如Thread.sleep()和Object.wait(),都可以抛出InterruptedException。您不能忽略这个异常,因为它是一个检查异常(checked exception)。但是应该如何处理它呢? 这样的情景您也许并不陌生:您在编写一个测试程序,程序...
阅读全文
摘要:1.核心区别:sleep用于线程控制,wait用于线程间的通信。sleep是Thread类的方法,是让线程休息一段时间,然后自动恢复运行,与其他线程无关,与同步无关,也与锁无关(拿锁时不会释放锁)。wait是Object类的方法,也就是锁的方法,必然在同步中,根据java7.0的解释(The thr...
阅读全文
摘要:首先结合项目从整体上去把握这部分:蓝牙模块中一个比较核心的文件是bluetooth.c, 在我们上电的时候, 会调用这个文件中bt_enable()这个函数, 在这个函数里面先调用set_bluetooth_power()上电,然后调用property_set("ctl.start", "hciat...
阅读全文
摘要:动态设定GridView的高度,固定column,根据gridview中的item个数设定高度:调用以下方法:[java]view plaincopypublicstaticvoidsetListViewHeightBasedOnChildren(GridViewlistView){//获取list...
阅读全文
摘要:众所周知Listview和Gridview的刷新界面的方式是调用adapter.notifyDataSetChanged()进行界面刷新。但是此方法有其弊端,他是将界面中的数据全部刷新一遍,不论数据有没有变化。如果listview加载了很多的数据(如:100条)在进行刷新时就会造成很大的系统开销如何...
阅读全文
摘要:一、相关概念1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2、Canvas画布,绘图的目的区域,用于绘图3、Bitmap...
阅读全文
摘要:文章都为原创,转载请注明出处,未经允许而盗用者追究法律责任。很久之前写的了,留着有点浪费,共享之。编写者:李文栋P.S. OpenOffice粘贴过来后格式有些混乱。1.2如何分析ANR问题引起ANR问题的根本原因,总的来说可以归纳为两类:应用进程自身引起的,例如:主线程阻塞、挂起、死循环应用进程的...
阅读全文
摘要:文章都为原创,转载请注明出处,未经允许而盗用者追究法律责任。很久之前写的了,留着有点浪费,共享之。编写者:李文栋 如果你是一个Android应用程序开发人员,你的人生中不可避免的三件事情是:死亡、缴税和ANR。这么说是夸张了,但是由于Android本身的设计,以及应用程序和系统在开发过程中的缺陷...
阅读全文
摘要:又做完一个项目,遂到了写帖时间了,要跟大家分享的是:自定义UISlider的图片和滑块,先看一下效果: 然后是实现了,我们使用的是UISlider的setMinimumTrackImage,和setMaximumTrackImage方法来定义图片 的,这两个方法可以设置滑块左边和右边的图片的,不过如...
阅读全文