摘要:
4.写一个setter方法用于完成@property (nonatomic,retain)NSString *name,写一个setter方法用于完成@property(nonatomic,copy)NSString *name [cpp] view plaincopyprint? - (void) 阅读全文
posted @ 2014-02-15 21:53
yulang
阅读(341)
评论(0)
推荐(0)
摘要:
介绍:Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在Mac OS X 10.6 ,iOS 4及以上也可用。设计:GCD的工作原理是:让程序平行排队... 阅读全文
posted @ 2014-02-15 18:58
yulang
阅读(225)
评论(0)
推荐(0)
摘要:
使用 NSOperation的方式有两种,一种是用定义好的两个子类:NSInvocationOperation 和 NSBlockOperation。另一种是继承NSOperation如果你也熟悉Java,NSOperation就和java.lang.Runnable接口很相似。和Java的Runn... 阅读全文
posted @ 2014-02-15 18:57
yulang
阅读(168)
评论(0)
推荐(0)
摘要:
1、简介:1.1 iOS有三种多线程编程的技术,分别是:1.、NSThread2、Cocoa NSOperation(iOS多线程编程之NSOperation和NSOperationQueue的使用)3、GCD全称:Grand Central Dispatch(iOS多线程编程之Grand Cent... 阅读全文
posted @ 2014-02-15 18:56
yulang
阅读(274)
评论(0)
推荐(0)
摘要:
KVO一,概述KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。二,使用方法系统框架已经支持KVO,所以程序员在使用的时候非常简单。1. 注册,指定被观察者的属性,2. 实现回调方法3. 移除观察三,实例:假设一个场景,股票的价格显示在当前屏幕上,当股票价格更改的时候,实时显示更新其价格。1.定义DataModel,[cpp]view plaincopy@interfaceStockData:NSObject{NSString*stockNam 阅读全文
posted @ 2014-02-15 18:45
yulang
阅读(282)
评论(0)
推荐(0)
摘要:
今天突然才之间才意识到NSTimer这样的运行方式,是在多线程中实现的循环还是在主线程中去实现的呢。当然不可能是在主线程中的while那么简单,那样什么都干不了,简单看了下NSTimer是以同步方式运行的。时间到了,消息发出后,ontimer的函数是在主线程上调用的。我们会经常看到这样的代码:- (... 阅读全文
posted @ 2014-02-15 18:34
yulang
阅读(290)
评论(0)
推荐(0)
摘要:
一.线程概述有些程序是一条直线,起点到终点;有些程序是一个圆,不断循环,直到将它切断。直线的如简单的Hello World,运行打印完,它的生命周期便结束了,像昙花一现那样;圆如操作系统,一直运行直到你关机。一个运行着的程序就是一个进程或者叫做一个任务,一个进程至少包含一个线程,线程就是程序的执行流... 阅读全文
posted @ 2014-02-15 18:33
yulang
阅读(277)
评论(0)
推荐(0)
摘要:
1到底这个序列化有啥作用?面向对象的程序在运行的时候会创建一个复杂的对象图,经常要以二进制的方法序列化这个对象图,这个过程叫做Archiving. 二进制流可以通过网络或写入文件中(来源于某教材的一段话)本人的理解是当你于写数据需要本地存储时,即将你的数据写到硬盘上的时候,你就必须对他进行序列化,转换成二进制文件,从而便于在磁盘上的读写,同理在取出的时候必须将其在反序列化,这样才能将数据读出来,就好比加密和揭秘的过程。2 为什么我将数据写到plist 中的时候,也是存储到本地的磁盘上,但是我就没有序列化啊?大家有没有发现,其实plist 的数据是类型是有限制的,就那么几种特定的数据类型,,ns 阅读全文
posted @ 2014-02-15 18:03
yulang
阅读(369)
评论(0)
推荐(0)
摘要:
assign: 简单赋值,不更改索引计数copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1Copy其实是建立了一个相同的对象,而retain不是:比如一个NSString对象,地址为0×1111,内容为@”STR”Copy到另外一个NSString之 后,地址为0×2222,内容相同,新的对象retain为1, 旧有对象没有变化retain到另外一个NSString之 后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1也就是说,retain是指针拷贝,cop 阅读全文
posted @ 2014-02-15 17:26
yulang
阅读(314)
评论(0)
推荐(0)
摘要:
阅读本文之前首先了解Copy与Retain的区别: Copy是创建一个新对象,Retain是创建一个指针,引用对象计数加1。 Copy属性表示两个对象内容相同,新的对象retain为1,与旧有对象的引用计数无关,旧有对象没有变化。copy减少对象对上下文的依赖。 Retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1也就是说,retain是指针拷贝,copy是内容拷贝。 当然在ios中并不是所有的对象都支持copy,mutableCopy,遵守NSCopying 协议的类可以发送copy消息,遵守NSMutableCopying 协议的... 阅读全文
posted @ 2014-02-15 17:20
yulang
阅读(787)
评论(0)
推荐(0)
摘要:
一,retain, copy, assign区别1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a 和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否还在使用这块内存,如果a释放了,那么b在使用这块内存的时候会引起程序crash掉。2. 了解到1中assign的问题,那么如何解决?最简单的一个方法就是使用引用计数(reference counting),还是上面的那个例子,我们给那块内存设一个引用计数,当内存被分配并且赋值给a时,引用计数是1。当把a 阅读全文
posted @ 2014-02-15 17:03
yulang
阅读(462)
评论(0)
推荐(0)
摘要:
初步写一些自己对于lazyload的看法吧。这篇文章主要针对普通view,对于image相关的的懒加载,准备过几天研究一下在写。懒加载,又称为延迟加载。通常用法,你有一个UITextField类型的property,简单定义为userNameTextField,但是你不在初始化方法里为其alloc/init,它就只是一个指针,不会占用内存。只是加载到你预想加载到的View上。如:[self addSubview:self.userNameTextField];//其中self为view,.userNameTextField为你声明的属性名字。显而易见的是,以上的指定是在view初始化的时候完成 阅读全文
posted @ 2014-02-15 16:30
yulang
阅读(220)
评论(0)
推荐(0)
摘要:
单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。1.单例模式的要点: 显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。2.单例模式的优点: 1.实例控制:Singleton 会阻止其他对象实例化其自己的 Singleton 对象的副本,从而确保所有对象都访问唯一实例。 2.灵活性:因为类控制了实例化过程,所以类可以更加灵活修改实例化过程IOS中的单例模式 在objective-c中要实现一个单例类,至少需要做以下四个步骤: 1、为单例对象实... 阅读全文
posted @ 2014-02-15 16:03
yulang
阅读(200)
评论(0)
推荐(0)
摘要:
一、消息推送原理:在实现消息推送之前先提及几个于推送相关概念,如下图1-1:1-11、Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端[消息的发起者]);2、APNS:Apple Push Notification Service[苹果消息推送服务器];3、iPhone:用来接收APNS下发下来的消息;4、Client App:IOS设备上的应用程序,用来接收iphone传递APNS下发的消息到制定的一个客户端app[消息的最终响应者];上图可以分为三个阶段:阶段一:Provider[服务端]把要发 阅读全文
posted @ 2014-02-15 15:23
yulang
阅读(262)
评论(0)
推荐(0)
摘要:
iOS 7发布了,适配问题来了,开发者都忙起来了。先记一个iOS7 的几个特点:1.坐标:以屏幕左上角为原点(iOS7以前在状态栏或者导航条下)2.UIScrollView(包括其子类,比如UITableView):会自动在顶部和底部预留一些空白(因为滚动经过半透明导航条或者tabbar下面,需要能隐约看到的效果),是否预留空白可以由UIViewController的automaticallyAdjustsScrollViewInsets的这个属性控制(默认YES,表示预留空白)。上面这些只要你用iOS开发,就能发现。最近遇到一个问题:在项目中一个控制器中有一个瀑布流和一个table,发现瀑布 阅读全文
posted @ 2014-02-15 15:00
yulang
阅读(176)
评论(0)
推荐(0)
摘要:
是第一篇: 1.Difference between shallow copy and deep copy?
浅复制和深复制的区别?
答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。
深层复制:复制引用对象本身。
意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说, 阅读全文
posted @ 2014-02-15 14:57
yulang
阅读(351)
评论(0)
推荐(0)
摘要:
51.UIscrollVew用到了什么设计模式?还能再foundation库中找到类似的吗?(答案众多,不知道哪个是对的~~) 模板(Template)模式,所有datasource和delegate接口都是模板模式的典型应用, 组合模式composition,所有的containerview都用了 阅读全文
posted @ 2014-02-15 14:56
yulang
阅读(295)
评论(0)
推荐(0)
摘要:
ios5 自定义导航条问题在ios5之前的系统中,可以通过定义导航条类别的方式自定义导航条:@implementation UINavigationBar (CustomImage)- (void)drawRect:(CGRect)rect { // Drawing code UIImage *image = [[UIImage imageNamed:@"header.png"] retain]; [image drawInRect:CGRectMake(0, 0,self.frame.size.width , self.frame.size.height)]; [im.. 阅读全文
posted @ 2014-02-15 13:45
yulang
阅读(677)
评论(0)
推荐(0)
摘要:
导航栏的按钮,右边的按钮是可以自己随意添加的。但左边的返回按钮怎么定制?你会说,添加一个自己的按钮呗!你可以试试看,这样行不行。正确的答案是重载UINavigationController类的pushViewController:animated方法。#import @interface MyNavigationController: UINavigationController {}@end#import "MyNavigationController.h"@implementation MyNavigationController-(void)popself{ [sel 阅读全文
posted @ 2014-02-15 13:43
yulang
阅读(607)
评论(0)
推荐(0)
摘要:
一.键盘通知当文本View(如UITextField,UITextView,UIWebView内的输入框)进入编辑模式成为first responder时,系统会自动显示键盘。成为firstresponder可能由用户点击触发,也可向文本View发送becomeFirstResponder消息触发。当文本视图退出first responder时,键盘会消失。文本View退出first responder可能由用户点击键盘上的Done或Return键结束输入触发,也可向文本View发送resignFirstResponder消息触发。当键盘显示或消失时,系统会发送相关的通知:UIKeyboard 阅读全文
posted @ 2014-02-15 13:39
yulang
阅读(794)
评论(0)
推荐(0)
摘要:
上篇文章介绍了如何用UITableView显示表格,并讲了几种UITableViewCell的风格。不过有时候我们需要自己定义 UITableViewCell的风格,其实就是向行中添加子视图。添加子视图的方法主要有两种:使用代码以及从.xib文件加载。当然后一种方法比较直 观。我们这次要自定义一个Cell,使得它像QQ好友列表的一行一样:左边是一张图片,图片的右边是三行标签:当然,我们不会搞得这么复杂,只是有点意思就行。1、运行Xcode 4.2,新建一个Single View Application,名称为Custom Cell:2、将图片资源导入到工程。为此,我找了14张50×5 阅读全文
posted @ 2014-02-15 13:37
yulang
阅读(568)
评论(0)
推荐(0)
摘要:
通过继承UITableViewCell来自定义cell1、创建一个空的项目、命名:2、创建一个UITableViewController 并且同时创建xib:3、设置AppDelegate.m中window的根控制器为刚刚创建的TableViewController:[cpp]view plaincopyprint?-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions{self.window=[[UIWindowalloc]initWith 阅读全文
posted @ 2014-02-15 13:35
yulang
阅读(622)
评论(0)
推荐(1)
摘要:
在用到UITableVIew的时候,经常会自定义每行的Cell在IOS控件UITableView详解中的下面代码修改部分代码就可以实现自定义的Cell了[cpp]view plaincopy-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath自定义代码:[cpp]view plaincopystaticNSString*CellWithIdentifier=@"Cell";UITableViewCell*cell=[tableView 阅读全文
posted @ 2014-02-15 13:32
yulang
阅读(467)
评论(0)
推荐(0)
摘要:
登录功能是我在湖畔做的第一个需求。当时PD给我的草图和下图类似:(图片来自知乎iOS客户端登录界面)不过需求中要求用户名或者密码错误时,输入框要抖动(类似Mac登录密码错误的抖动效果)。如果实现上图的UI布局,那么输入框抖动是上下单元格独立抖动还是整体抖动?独立抖动:会出现上下单元格边界不齐的断裂效果,破坏美感。整体抖动:只是用户名错误,密码框为什么抖动?给用户的提示不清晰。我个人不希望给用户不友好的信息,所以我做成了下面的效果:由于我做的效果和PD想要的不一致,所以还产生了一番讨论。为此,不得不向PD普及一下网站登录检查的基本流程,让他知道会先检查用户名是否存在,才会进一步判断用户名和密码是 阅读全文
posted @ 2014-02-15 13:15
yulang
阅读(366)
评论(0)
推荐(0)
摘要:
通常,移动App的注册功能通常采用手机号码注册或者邮箱帐号注册。不过在国内这样隐私堪忧的环境下,需要手机号来注册会流失不少用户。即便是新浪微博这样的应用,需要绑定手机号也令我不信任。除非是像淘宝、支付宝这样需要手机号来提高安全等级的服务,才能弱化用户的心理障碍。首先,看下手机号码注册。(注册湖畔)对于手机号码输入框,我们当然要默认使用UIKeyboardTypeNumberPad类型键盘。不过对于越狱用户,如果装了其它输入法,则有可能使用其它类型键盘输入非数字字符。对此,我们在客户端最好进行过滤和检查。因为客户端如果发送了包含非数字字符的电话号码给服务端进行校验,是没有意义且浪费流量的。在用户 阅读全文
posted @ 2014-02-15 13:13
yulang
阅读(421)
评论(0)
推荐(0)
摘要:
toolbar除了可以和navigationController一起用之外,也可以独立用到view里。工具栏UIToolbar – 一般显示在底部,用于提供一组选项,让用户执行一些功能,而并非用于在完全不同的UI界面之间切换;在不同 UI 界面切换,是选项卡 Tab Bar负责的。 1 // 2 // TWFXToolBarViewController.m 3 // DemoToolBar 4 // 5 // Created by Lion User on 13-1-19. 6 // Copyright (c) 2013年 Lion User. All rights res... 阅读全文
posted @ 2014-02-15 13:07
yulang
阅读(433)
评论(0)
推荐(0)
摘要:
当你在seachBar中输入字母之前的时候,只是用鼠标选中searchBar的时候,如图终端输出截图如下:(这个时候调用先shouldBeginEditing,之后调用didBeginEditing,)当你希望选中UISearchBar的时候,键盘自动调用加载到界面,你需要将下面函数的返回值设置为YES;- (BOOL)searchBarShouldBeginEditing:(UISearchBar*)searchBar { NSLog(@"shouldBeginEditing"); returnYES;}当你在seachBar中输入字母Dditring的时候,如图:终端显 阅读全文
posted @ 2014-02-15 13:05
yulang
阅读(229)
评论(0)
推荐(0)
摘要:
作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验(点击打开链接)。此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便。从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerialization),但是为了兼容以前的ios版本,可以使用第三方库来解析Json。本文将介绍TouchJson、 SBJson 、JSONKit 和 iOS5所支持的原生的json方法,解析国家气象局API,Tou 阅读全文
posted @ 2014-02-15 13:00
yulang
阅读(341)
评论(0)
推荐(0)
摘要:
iPhone中两种XML解析方式NSXMLParser和GDataXMLNode是本文要介绍的内容,很详细的介绍了NSXMLParser和GDataXMLNode这两种方式,常用的解析XML的方式分为两种,它们基于不同的API: 1.Tree-basedAPI:这种API的处理方式是将XML的结构看成是树,然后把树的各部分看成一个对象来处理,这就是我们说的DOM(Document ObjectModel)方式。在iPhone的SDK里包含了一个libxml2的框架(Framework)就能进行DOM解析方式。Google的GDataXML也是基于libxml2的,因此在使用GDataXML之. 阅读全文
posted @ 2014-02-15 12:58
yulang
阅读(191)
评论(0)
推荐(0)
摘要:
ASIHTTPRequest框架是优秀的第三方Objective-C的HTTP框架,支持Mac OS X和iOS下的HTTP开发。一、ASIHTTPRequest框架的安装和配置(1)首先要在项目工程中导入相关的文件,包括:ASIHttpRequest文件夹和Reachability文件夹。(2)要... 阅读全文
posted @ 2014-02-15 12:54
yulang
阅读(230)
评论(0)
推荐(0)
摘要:
ASIHTTPRequest是一款极其强劲的HTTP访问开源项目。让简单的 API 完成复杂的功能,如:异步请求,队列请求,GZIP压缩,缓存,断点续传,进度跟踪,上传文件,HTTP认证在新的版本中,还加入了Objective-C闭包Block的支持,让我们的代码更加轻简灵活。下面就举例说明它的AP... 阅读全文
posted @ 2014-02-15 12:52
yulang
阅读(379)
评论(0)
推荐(0)
摘要:
下面首先介绍一下一些基本的概念---同步请求,异步请求,GET请求,POST请求。1、同步请求从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作。也就是说同步就意味着阻塞线程,在同步请求过程中主线程中不响应其他事件直到同步请求结束。2、异步请求就不会... 阅读全文
posted @ 2014-02-15 12:49
yulang
阅读(4537)
评论(0)
推荐(0)
摘要:
网络编程中一般都是经过 请求---》连接---》响应 (request --》 connection --》 response)这个过程。一般的步骤是这样的:1、先创建一个NSURL。2、通过这个指定的URL创建NSURLRequest,这里还可以指定缓存策略和超时时间。3、根据你的request... 阅读全文
posted @ 2014-02-15 12:47
yulang
阅读(427)
评论(0)
推荐(0)
摘要:
UIActivityIndicatorView和UIProgressView都继承自UIView,所以他们可以附属在其他视图上。UIActivityIndicatorView是一个进度提示器,显示一个小圆圈在转动,主要用在一些耗时操作的提示上,比如网络请求;UIProgressView是一个进度提示条,不过它可以显示一个进度,可以告知用户操作已经进行了多少,这二者的目的都是为了在应用程序有耗时操作时在UI上进行显示,提高用户体验。下面分别来创建这个两个控件:首先在ViewController.h中声明代码:[cpp]view plaincopy#import@interfaceViewCont 阅读全文
posted @ 2014-02-15 12:06
yulang
阅读(255)
评论(0)
推荐(0)
摘要:
UIProgressView和UIActivityIndicator有些类似但是不同之处在于,UIProgressView能够更加精确的反应进度UIActivityIndicator则只能表示事物在进行中有一个例子是在Mail程序中当在下载信息的时候,有一个UIProgressView显示在底部初始化方法- (id)initWithProgressViewStyle:(UIProgressViewStyle)styleUIProgressViewStyle 有两个枚举变量1. UIProgressViewStyleDefault 2. UIProgressViewStyleBar一般用于too 阅读全文
posted @ 2014-02-15 12:04
yulang
阅读(563)
评论(0)
推荐(0)
摘要:
UIPopoverController是iPad上的iOS开发会常用到的一个组件(在iPhone设备上不允许使用),这个组件上手很简单,因为他的显示方法很少,而且参数简单,但我在使用过程中还常碰到各种问题,直到今天我感觉才把他的用法完全搞明白。 先看他的继承关系,UIPopoverController是直接继承自NSObject,它和UIViewController没有半毛线关系.那它是怎么实现弹出在所有View之上的,我猜测是利用了keywindow,把这个View加在keywindow里面,我做了个试验,一般我们会在AppDelegate的didFinishLauch(大概是这么个方法). 阅读全文
posted @ 2014-02-15 11:59
yulang
阅读(316)
评论(0)
推荐(0)
摘要:
分页控件是一种用来取代导航栏的可见指示器,方便手势直接翻页,最典型的应用便是iPhone的主屏幕,当图标过多会自动增加页面,在屏幕底部你会看到原点,用来只是当前页面,并且会随着翻页自动更新。一、创建[java]view plaincopyprint?UIPageControl*myPageControl=[[UIPageControlalloc]initWithFrame:CGRectMake(0.0,400.0,320.0,0.0)];二、设置属性1. 页面数目[java]view plaincopyprint?myPageControl.numberOfPages=5;默认第一页会被选中。 阅读全文
posted @ 2014-02-15 11:57
yulang
阅读(229)
评论(0)
推荐(0)
摘要:
iPad的屏幕比iPhone大,所以在界面上,iPad比iPhone多一个UISplitViewController,用来实现iPad在横屏时,分两栏显示所需要的界面,可以一边是目录一边是具体的内容。下面我将详细的阐述UISplitViewController在ipad中的使用。首先是创建一个工程:iPad.demo.然后创建一个DetailViewController和RootViewController,其中RootViewController继承UITableViewController。同事创建两个相应的xib文件。删除ipad_demoViewController.相应的类列表如下: 阅读全文
posted @ 2014-02-15 11:54
yulang
阅读(574)
评论(0)
推荐(0)
摘要:
UIWebView是iOS sdk中一个最常用的控件。是内置的浏览器控件,我们可以用它来浏览网页、打开文档等等。这篇文章我将使用这个控件,做一个简易的浏览器。如下图:我们创建一个Window-based Application程序命名为:UIWebViewDemoUIWebView的loadRequest可以用来加载一个url地址,它需要一个NSURLRequest参数。我们定义一个方法用来加载url。在UIWebViewDemoViewController中定义下面方法:- (void)loadWebPageWithString:(NSString*)urlString{ NSURL ... 阅读全文
posted @ 2014-02-15 11:51
yulang
阅读(253)
评论(0)
推荐(0)
摘要:
UIWebView可以让你创建一个网页浏览器,类似safari,而不是在程序中启动safsri哦。是不是觉得很棒呢?废话少说,切入正题。一、创建UIWebView[java]view plaincopyprint?CGRectbouds=[[UIScreenmanScreen]applicationFrame];UIWebView*webView=[[UIWebViewalloc]initWithFrame:bounds];二、设置属性[java]view plaincopyprint?webView.scalespageToFit=YES;//自动对页面进行缩放以适应屏幕webView.de 阅读全文
posted @ 2014-02-15 11:49
yulang
阅读(216)
评论(0)
推荐(0)
摘要:
UIScrollView 类负责所有基于 UIKit 的滚动操作。一、创建[java]view plaincopyCGRectbounds=[[UIScreenmainScreen]applicationFrame];UIScrollView*scrollView=[[UIScrollViewalloc]initWithFrame:bounds];当你创建完滚动视图后,你可以将另一个视图的内容粘合到滚动视图的空白页上。这回创建一个滚动的内容窗口:[java]view plaincopy[scrollViewaddSubview:myView];你必须给出内容的实际大小,这样滚动视图才知道滚动的 阅读全文
posted @ 2014-02-15 11:47
yulang
阅读(190)
评论(0)
推荐(0)
摘要:
我们计划创建UITextView,实现UITextViewDelegate协议方法,使用NSLog检查该方法何时被调用。我们还会接触到如何在TextView中限制字符的数量,以及如何使用return键隐藏keyboard。看看如何在你的app中实现这些功能。第一步:创建一个新的Xcode项目运行Xcode,依次点击File > New > Project,然后在左边点击iOS下面的"Application",右边选中"Single View Application",然后点击“next”。接下来如图中所示,在"Product Nam 阅读全文
posted @ 2014-02-15 11:45
yulang
阅读(635)
评论(0)
推荐(0)
摘要:
以下为控制器代码,主要用到的是UIPickerView主要步骤:新建一个Single View Application然后,如上图所示,拖进去一个UILabel Title设置为导航,再拖进去一个UILabel,用于显示效果,最后拖进去一个UIPickerView,设置好代理和dataSource,这应该都会。往后就是在代码中实现效果。代码注释很详细,看看都会懂,然后结合API,就可以举一反三了。自己也是慢慢学习的,然后自己练得。嘿嘿多多学习。加油!!!#import @interface sdsViewController : UIViewController//这是显示效果的label@p 阅读全文
posted @ 2014-02-15 11:31
yulang
阅读(1063)
评论(0)
推荐(0)
摘要:
UIActionSheet是在IOS弹出的选择按钮项,可以添加多项,并为每项添加点击事件。为了快速完成这例子,我们打开Xcode 4.3.2, 先建立一个single view application。然后再xib文件添加一个button,用来弹出sheet view。1、首先在.h文件中实现协议,加代码的地方在@interface那行的最后添加,协议相当于java里的接口,实现协议里的方法。@interface sheetviewViewController : UIViewController@end2、添加button,命名button为showSheetView.3、为button建立 阅读全文
posted @ 2014-02-15 11:27
yulang
阅读(244)
评论(0)
推荐(0)
摘要:
系统自带的UISwitch是这样的:既不能写字,也不能改颜色,于是在网上找到了这么一个自定义的Switch按钮,具体出处找不见了。记录一下,怕以后找不见了。先看下效果图:按钮的样式很多,可以文字,可以写多行,文字大小和颜色都可以设置。看下它的源码:[cpp]view plaincopy#import@interfaceHMCustomSwitch:UISlider{BOOLon;UIColor*tintColor;UIView*clippingView;UILabel*rightLabel;UILabel*leftLabel;//privatememberBOOLm_touchedSelf;} 阅读全文
posted @ 2014-02-15 11:25
yulang
阅读(1706)
评论(0)
推荐(0)
摘要:
举例:UIAlertView *alertView= [[UIAlertView alloc]initWithTitle:@"Default Alert View"message:@"Defalut"delegate:selfcancelButtonTitle:@"Cancel"otherButtonTitles:@"OK",nil];标准的双按钮,cancel那个buttonIndex 为0, ok button 的buttonIndex为1UIAlertView *alertView= [[UIAlertVie 阅读全文
posted @ 2014-02-15 11:20
yulang
阅读(259)
评论(0)
推荐(0)
摘要:
初始化UISegmentedControlNSArray *arr = [[NSArray alloc]initWithObjects:@"轻拍",@"长按",@"清扫",@"旋转",@"捏合",@"拖拽", nil];//先创建一个数组用于设置标题UISegmentedControl *segment = [[UISegmentedControl alloc]initWithItems:arr];//在没有设置[segment setApportionsSegmentWid 阅读全文
posted @ 2014-02-15 11:12
yulang
阅读(425)
评论(0)
推荐(0)
摘要:
初始化一个SliderUISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 400,320 , 20)];滑块是一个标准的UIControl。我们可以通过代码创建,如同开关(UISwitch)的宽与高都会被忽略一样滑块的高也会被忽略(但是宽度不会):二、设定范围与默认值创建完毕的同时我们要设置好滑块的范围,如果你没有设置,那么会使用默认的 0.0 到 1.0 之间的值。UISlider提供了两个属性来设置范围:mininumValue 和 maxinumValue:源码打印?mySlider.mininumValue=0 阅读全文
posted @ 2014-02-15 11:10
yulang
阅读(560)
评论(0)
推荐(0)
摘要:
//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];//设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITextBorderStyleBezel, UITextBorderStyleRoundedRect } ... 阅读全文
posted @ 2014-02-15 11:08
yulang
阅读(191)
评论(0)
推荐(0)
摘要:
UIImageView,顾名思义,是用来放置图片的。使用Interface Builder设计界面时,当然可以直接将控件拖进去并设置相关属性,这就不说了,这里讲的是用代码。1、创建一个UIImageView:创建一个UIImageView对象有五种方法:UIImageView *imageView1 = [[UIImageView alloc] init]; UIImageView *imageView2 = [[UIImageView alloc] initWithFrame:(CGRect)]; UIImageView *imageView3 = [[UIImageView alloc] 阅读全文
posted @ 2014-02-15 11:04
yulang
阅读(247)
评论(0)
推荐(0)
摘要:
第一、UIButton的定义 UIButton*button=[[UIButton buttonWithType:(UIButtonType);能够定义的button类型有以下6种,typedef enum {UIButtonTypeCustom = 0, 自定义风格UIButtonTypeRoundedRect, 圆角矩形UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用UIButtonTypeInfoLight, 亮色感叹号UIButtonTypeInfoDark, 暗色感叹号UIButtonTypeContactAdd, 十字加号按钮} UIBu 阅读全文
posted @ 2014-02-15 11:01
yulang
阅读(379)
评论(0)
推荐(0)
摘要:
详细使用:UILabel *label = [[UILabelalloc] initWithFrame:CGRectMake(0, 0, 75, 40)]; //声明UIlbel并指定其位置和长宽label.backgroundColor = [UIColorclearColor]; //设置label的背景色,这里设置为透明色。label.font = [UIFont fontWithName:@"Helvetica-Bold" size:13]; //设置label的字体和字体大小。label.transform = CGAffineTransformMakeRotat 阅读全文
posted @ 2014-02-15 10:59
yulang
阅读(267)
评论(0)
推荐(0)
摘要:
这个程序的主要界面就是一个TabBarController。总共三个标签,第一个是所有的可点的菜,第二个是已点的菜,第三个是可以留言或者查看所有留言。下面是第一个页面:右上角的i按钮是添加新菜,每个cell中的order就是点餐咯,可以重复按多次。首先说下这个列表的数据是存放在coredata中的,这个项目的coredata有两个实体,一个是dishes保存每一道菜的名字,id,价格,描述,菜系等。还有一个实体是type保存菜系。这个项目用coredata的方式,正好是我想学的。就是在新建项目的时候勾选use coredata,那么在appdelegate中就会出现与coredata响应的代码 阅读全文
posted @ 2014-02-15 10:51
yulang
阅读(554)
评论(0)
推荐(0)
浙公网安备 33010602011771号