Monthly Archives: February 2012

在UIToolbar中添加title

在iOS开发中,有时候会遇到需要在UIToolbar上添加Title的情况,类似于UINavigationController 的title。 下面的代码会使用UIBarButtonItem alloc 的 initWithCustomView方法来添加一个UILabel作为Title的载体。   UIBarButtonItem * spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0 , 11.0f, 120, 21.0f)]; [titleLabel setFont:[UIFont fontWithName:@”Helvetica-Bold” size:18]]; [titleLabel setBackgroundColor:[UIColor clearColor]]; [titleLabel setTextColor:[UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0]]; [titleLabel setText:@”bookmark”]; [titleLabel setTextAlignment:UITextAlignmentCenter]; UIBarButtonItem *titleButtonItem = [[UIBarButtonItem alloc] initWithCustomView:titleLabel]; [titleLabel release]; UIToolbar * toolBar=[[UIToolbar alloc] […]

ArcGIS API for iOS, iOS, iPad, iPhone4, Mac OS X Leave a comment

在iOS开发中使用私有方法和私有接口

本质上Obj-c中是没有私有方法和私有接口这个概念的,这里的私有方法和私有接口是不想通过.h头文件暴漏给用户的方法和协议,这在类库的设计中是非常重要的一点,当然,最简单的方式就是在.m文件中直接定义方法而不在头文件中定义,这样在ObjC中使用是没有任何问题的,因为ObjC是动态语言,只要你敢有,他就敢用。但这样会带来很多编译器警告,这对于有编译洁癖的人是不可忍受的。 那么如何隐藏这些“私有方法”和“私有接口”呢?很简单,只需要在.m文件中定义一个类匿名分类即可,当然也可以定义一个非匿名分类。 例如: //头文件 @interface BookmarkEntity : NSObject { NSString * _bookmarkName; AGSEnvelope * _extent; } -(id) initWithName; @property (nonatomic, retain) NSString * bookmarkName; @property (nonatomic, retain) AGSEnvelope * extent; @end 我们定义一个私有方法,需要在.m文件中定义一个匿名分类,并且声明使用SomeDelegate这个私有接口 //.m文件 #import “BookmarkEntity.h” @interface BookmarkEntity() -(void) doSomething; @end @implementation BookmarkEntity @synthesize bookmarkName=_bookmarkName; @synthesize extent=_extent; -(id) initWithName { } -(void) doSomething { } @end

ArcGIS API for iOS, iOS, iPad, iPhone4 Leave a comment

使用AppleScript处理plist文件

在Mac OS X的Cocoa,NeXTSTEP和GNUstep编程框架中,属性列表(Property List)文件是一种用来存储序列化后的对象的文件。属性列表文件的文件扩展名为.plist,因此通常被称为plist文件。 plist文件在mac中应用非常多。xcode的工程中就是使用plist文件来配置程序属性信息。 下面的代码使用AppleScript来创建一个plist文件 set theEmptyPListData to ” ” set theOutputFolder to path to desktop folder as string set thePListPath to theOutputFolder & “myPListFile.plist” set thePListFile to open for access thePListPath with write permission set eof of thePListFile to 0 write theEmptyPListData to thePListFile starting at eof close access thePListFile 使用AppleScript 添加属性 set […]

AppleScript, ArcGIS API for iOS, iOS, iPad, iPhone4, Mac OS X Leave a comment

通过UIView对象获取该对象所属的UIViewController

通过UIView对象获取该对象所属的UIViewController可以使用UIResponder的nextResponder方法获得, UIView类继承于UIResponder,因此可以直接使用。 根据文档描述,如果View有view controller,则通过nextResponder方法返回,如果没有则返回superview。 下面是英文原文: if the view has a view controller, it is returned by nextResponder. If there is no view controller, the method will return the superview 相关代码如下:遍历该View的树形结构,获取到其所属的ViewController – (UIViewController*)viewController {   for (UIView* next = [self superview]; next; next = next.superview) {     UIResponder* nextResponder = [next nextResponder];     if […]

ArcGIS, iOS, iPad, iPhone4, Mac OS X Leave a comment

iOS开发中使用包(bundle)模式管理资源

使用包(bundle)模式管理资源在资源文件非常多并分别属于不同模块的适合非常适用。我们可以将不同模块用到资源文件放到不同的包中。 使用包很简单,分三步: 1 创建包,请参考在XCode工程中创建bundle文件 2 将资源文件拷贝到包中 3 在代码中获取资源并使用,下面代码首先load 名为QuadCurve的包,然后获取该包中名为bg-menuitem的png图片 NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@”QuadCurve” ofType:@”bundle”]]; NSString * strPath = [bundle pathForResource:@”bg-menuitem” ofType:@”png”]; UIImage *storyMenuItemImage = [UIImage imageWithContentsOfFile:strPath];          

Uncategorized Leave a comment

在XCode工程中创建bundle文件

在ios开发中为了方便管理资源文件,可以使用bundle的方式来进行管理,类似于ArcGIS Runtime for iOS中的ArcGIS.bundle . 切记目前iOS中只允许使用bundle管理资源文件和国际化信息,不支持代码的打包。 在xcode3.2.5 中只能够创建setting bundle,会默认创建一些配置文件,在xcode中无法直接删除,这也许不是我们需要的。 那么如何使用最简单的方法创建一个bundle呢? 1 创建一个文件夹 2 将该文件夹重命名为a.bundle 3 将a.bundle拖入到xcode中即可 bundle的本质就是一个文件夹。当然在iOS中还可以干很多事情,详细资料请参考: https://developer.apple.com/library/ios/#documentation/CoreFoundation/Conceptual/CFBundles/AboutBundles/AboutBundles.html#//apple_ref/doc/uid/10000123i-CH100-SW7

ArcGIS, ArcGIS API for iOS, iOS Leave a comment