代码改变世界

随笔分类 -  iPhone实践

UI控件篇——UIPageControl及其自定义

2013-07-30 10:17 by 张智清, 35140 阅读, 收藏, 编辑
摘要: UIPageControl类提供一行点来指示当前显示的是多页面视图的哪一页。当然,由于UIPageControl类可视样式的点击不太好操作,所以最好是确保再添加了可选择的导航选项,以便让页面控件看起来更像一个指示器,而不是一个控件。当用户界面需要按页面进行显示时,使用UIPageControl控件将要显示的用户界面内容分页进行显示会使编程工作变得快捷。 用户点击页面控件,会触发UIControlEventValueChanged事件,并启动设置为控件动作的任何方法。可以通过调用currentPage查询控件的新值,并通过调整numberOfPages属性设置可用的页面数。 阅读全文

iPhone必备杀器Instagram是如何站在巨人肩膀上的

2012-04-25 12:22 by 张智清, 976 阅读, 收藏, 编辑
摘要: 风靡全球的Instagram这款iPhone app,精美的UI、流畅的体验以及强大的filter滤镜效果单从应用开发角度而言就很牛,难怪在受到大佬们的青睐,造就又一个IT神话。不过,Instagram应用并不是一个完全从头到脚敲代码出来的纯粹原创作品,作者在其官方博客上详细列出了他们在开发过程中用到的全部开源项目,现在让我们看看Instagram究竟是如何站在巨人的肩膀上的: 阅读全文

在default.png启动画面添加加载进度条

2012-02-16 18:52 by 张智清, 3 阅读, 收藏, 编辑
该文被密码保护。 阅读全文

Xcode4.2中将Three20开源库导入到工程项目中

2012-02-11 21:06 by 张智清, 8211 阅读, 收藏, 编辑
摘要: Three20这个与facebook亲戚的开源库是蜚声iPhone开发界,很多App都有它的影子,主要是其真得是功能强大。那么如何将Three20库添加到自己的项目中应用呢?一种是Python命令方式添加,再有就是纯手动添加到Xcode的具体项目中(以下是我在Xcode4.2中的添加配置操作,仅供记录参考)。 1. 从https://github.com/facebook/three20下载源码后解压到具体目录中。 2. 定位到解压目录下的src/Three20文件夹,将其中的Three20.xcodeproj拖放进我们在Xcode具体的工程项目中。注:在弹出的添加对话框中确认不要勾选”Copy Items into destinatons group's folder”选项框,勾选“Create folder references....”项。 阅读全文

项目中如何添加CorePlot开源框架(重温Xcode链接静态库)

2012-02-11 11:32 by 张智清, 8453 阅读, 收藏, 编辑
摘要: CorePlot是一个开源的数据报表框架库,且是个静态库(iphone协议不允许连接动态库)。因此在项目中使用CorePlot要进行必要的一些设置以使Xcode正确链接这个静态库。(示例项目:PieChart Sample)。 1. 首先将core-plot/framework文件夹下的CorePlot-CocoaTouch.xcodeproj工程文件拖放进本例的PieChart Sample项目中,其间确认没有勾选"copy items to destination group's folder"选项。一旦添加了这个CorePlot工程文件,则在iPhone项目中作为二进制形式是可用的。 2. 选中拖进的CorePlot项目的Target项,在“Build Phases”选卡下的“Link Binary With Libraries”节点中新加入libCorePlot-CocoaTouch.a文件。 阅读全文

游戏开发中的利器TexturePacker实现游戏贴图打包

2012-01-07 15:37 by 张智清, 9778 阅读, 收藏, 编辑
摘要: 著名的图片打包软件TexturePacker,只要是做游戏应用开发,几乎都会或多或少的用到它。 阅读全文

可任意自定义的UITableViewCell

2012-01-07 14:52 by 张智清, 38289 阅读, 收藏, 编辑
摘要: UITableView的强大更多程度上来自于可以任意自定义UITableViewCell单元格。通常,UITableView中的Cell是动态的,在使用过程中,会创建一个Cell池,根据每个cell的高度(即tableView:heightForRowAtIndexPath:返回值),以及屏幕高度计算屏幕中可显示几个cell。而进行自定义TableViewCell无非是采用代码实现或采用IB编辑nib文件来实现两种方式,本文主要收集代码的方式实现各种cell自定义。 阅读全文

xCode4.2中导入OpenFlow库到项目中出现编译警告warning: Semantic Issue: Writable atomic property

2012-01-05 22:15 by 张智清, 1789 阅读, 收藏, 编辑
摘要: 目前已全面升级使用xCode4.2加iOS5.0,以致导入的有些库的使用或多或少会出现些编译错误,就像今天在应用OpenFlow时,就发生以下编译2处警告: 1. warning: Semantic Issue: Writable atomic property 'number' cannot pair a synthesized setter/getter with a user defined setter/getter 指示在AFItemView.m文件 2. warning: Semantic Issue: Writable atomic property 'numberOfImages' cannot pair a synthesized setter/getter with a user defined setter/getter 指示在AFOpenFlowView.m文件 阅读全文

CoCoa编程中视图控制器与视图类(二)

2012-01-03 14:00 by 张智清, 1414 阅读, 收藏, 编辑
摘要: UITabBarController类 选项卡类允许用户在多个视图控制器之间移动并在屏幕的底部可定制该栏。向不同的视图同时提供一次单击访问,向用户选择的屏幕和编辑底栏的屏幕同时提供More按钮。 选项卡类的方便之处就是不需要象导航栏那样以栈的方式推入和弹出视图的操作,而是组建一系列的控制器(它们各自可以是UIViewController、UINavigationController、UITableViewController或其他任何类型的视图控制器),并通过设置栏的viewControllers属性将其添加到选项卡栏,使每个选项卡对应一个试图控制器。 阅读全文

NSXMLParser具体解析xml的应用详解

2012-01-01 22:56 by 张智清, 10403 阅读, 收藏, 编辑
摘要: 有关NSXMLParser解析类库的基本论述,可查看相关SDK帮助,以下仅仅是具体的应用操作。是以一个图书库应用为例,其Books.xml文档结构如下: 1 2 3 4 Circumference 5 Nicholas Nicastro 6 Eratosthenes and the Ancient 7 8 9 Copernicus Secret 10 Jack Repcheck 11 How the scientific revolution began 12 阅读全文

CoCoa编程中视图控制器与视图类(一)

2011-12-29 20:39 by 张智清, 1745 阅读, 收藏, 编辑
摘要: iPhone编程规则是:一个窗口,多个视图。UIView是iPhone屏幕上很多控件的基础类。每个iPhone用户界面都是由显示在UIWindow(这其实也是个特殊的UIView)内的众多UIView及其专门化子类构建的。显示数据的视图: 阅读全文

如何使用JSON Framework库解析与生成json数据(iphone网络篇二)

2011-12-27 15:53 by 张智清, 3301 阅读, 收藏, 编辑
摘要: JSON Framework设置工作 为了在自己的工程项目中使用json framework框架库,必须将其导入到工程项目组中。即把JSON Framework库的Classes文件夹下所有的文件导入添加进项目中,然后在具体使用json framework的代码实现文件中添加#import "SBJson.h"导入此头文件。 阅读全文

关于自定义AlertView背景的方法收集

2011-12-24 22:32 by 张智清, 4076 阅读, 收藏, 编辑
摘要: 从网上收集了一些自定义AlertView背景的方法,汇总一下以便有需要时使用。 阅读全文

iPhone的定位技术与Core Location框架

2011-12-24 18:43 by 张智清, 1581 阅读, 收藏, 编辑
摘要: iPhone定位来源通常有: 1. GPS定位 2. WiFi定位 3. 蜂窝基站定位 iPhone分阶段处理定位问题,它根据请求的精确度使用不同的方法。 如何利用Core Location服务实现精确定位iPhone用户的位置: 首先将Core Location框架添加到项目中。另确保在代码中#import 头文件。 分配一个定位管理器。将此管理器的委托(delegate)设置为主视图控制器或应用程序委托。另外,还可设置此管理器所需的distance filter和准确性。 distance filter以米为单位设置最小距离。使得设备必须移动至少这些距离才可以注册新更新。 accuracy属性设置所需的精度。 通过测试定位管理器的locationServicesEnabled属性来检查用户是否已启用Core Location。而iOS4.0开始使用类方法locationServicesEnabled来检测。 开始定位。告诉定位管理器开始更新位置。找到位置时,系统回调会通知你。 处理定位 阅读全文

精简易理解的ios开发要点(一句话的要点,不断总结补充!!)

2011-12-22 14:59 by 张智清, 2242 阅读, 收藏, 编辑
摘要: 调用UIApplicationMain函数来启动事件循环并运行整个应用程序是main主函数的核心任务。 UIApplicationMain函数的第三个(principalClassName)和第四个(delegateClassName)参数,分别指明了应用程序的主类和应用程序委托类。 应用程序类的静态方法sharedApplication方法可以获取应用程序的句柄;即通过调用[UIApplication sharedApplication]来得到这个单例实例的指针。由此实例句柄的delegate方法我们可以得到对应用程序委托的一个引用。 应用程序委托是可以执行一些代码的第一个地方(当应用程序加载的时候),也是最后一个地方(在应用程序退出之前)。 applicationDidFinishLaunching: 这是在应用程序载入之后调用的第一个方法。是执行应用程序范围内数据初始化(载入任何应用程序之前的状态或设置)的好地方。 阅读全文

警告框扩展应用:给UIAlertView添加UITextField模拟登录框

2011-12-22 13:54 by 张智清, 2811 阅读, 收藏, 编辑
摘要: 首先要自定义一个UIAlertView扩展类,如MAlertView:View Code // MAlertView.h//#import <Foundation/Foundation.h>@interface MAlertView:UIAlertView { UITextField *passwdField; NSInteger textFieldCount;}- (void)addTextField:(UITextField *)aTextField placeHolder:(NSString *)placeHolder;@end// MAlertView.m//#i... 阅读全文

UI控件篇——UISlider与UISwitch

2011-12-21 20:39 by 张智清, 5264 阅读, 收藏, 编辑
摘要: UISlider实例提供一个控件,让用户通过左右拖动一个滑块(可称其为“缩略图”)来选择一个值。默认情况下,滑块的最小值为0.0,最大值为1.0。当然可以在属性面板中通过设置minimumValue和maximumValue来进行定制这两个值。如果要为控件两端设置样式,可以添加一对相关图像(minimumValueImage和maximumValueImage属性)来加强该设置,也可在代码中通过setMimimumTrackImage: forState: 和setMaximumTrackImage: forState: 方法来添加设置两端图片。 滑块的continuous属性控制在用户拖动缩略图时一个滑块是否持续发送值更新。设置为NO(默认为YES)时,用户释放缩略图时滑块仅发送一个动作事件。UISlider类还允许直接更新其缩略图组件,通过调用setThumbImage: forState:方法可定制自己的滑块图片。 阅读全文

视图篇——UIScrollView学习要点

2011-12-20 23:42 by 张智清, 1602 阅读, 收藏, 编辑
摘要: ScrollView原理 视图的滚动过程,其实是在不断修改原点坐标。当手指触摸后,ScrollView会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件,那么ScrollView发送tracking events到被点击的subView;若是在计时器到点后发生了移动事件,那么ScrollView取消tracking自己促发滚动。 阅读全文

UI控件篇——UIActionSheet(操作表)和UIAlertView(警告框)

2011-12-20 16:49 by 张智清, 2825 阅读, 收藏, 编辑
摘要: UIActionSheet用于迫使用户在两个或更多的选项之间进行选择的模式视图。操作表是从屏幕底部弹出,显示一系列按钮供用户选择,用户只有单击一个按钮后才能继续使用应用程序。(可以理解为桌面应用系统的右键菜单的功能) UIAlertView警告默认是以蓝色圆角矩形形式显示在屏幕中央,警告框可显示一个或多个按钮,且为了让控制器类充当操作表的委托,控制器需要遵从UIActionSheetDelegate协议。 阅读全文

关于31天App教程示例中一些因SDK版本而出现的问题

2011-12-11 14:05 by 张智清, 1047 阅读, 收藏, 编辑
摘要: 由于国外那个知名的31天案例教程比较老,所用官方API是2008年时的2.X,所以在现在的Xcode3-4之后或多或少都有编译警告和错误信息。必须做些适应iOS版本的代码更改才能顺利编译通过。Day1:Minutes to MidnightNSDate* now = [NSDate date];int hour = 23 - [[now dateWithCalendarFormat:nil timeZone:nil] hourOfDay];int min = 59 - [[now dateWithCalendarFormat:nil timeZone:nil] minuteOfHour];in 阅读全文