Archive

Archive for March, 2013

iOS开发之UITabBarController记录上一次选中的tabIndex并返回

March 6th, 2013 1 comment

UITabBarController可以实现多个UIViewController独立显示,但是各个UIViewController之间的关系的控制就不太好控制了,特别是没有记录最近一次选中的tab编号,有些需求的实现就比较困难了,比如在A tab下通过一个事件可以切换到上一次选中的B tab,或者A tab中的事件需要切换到B tab并且在B tab处理完成后可以返回到A tab。这时如果可以知道UITabBarController上一次选中的tab编号的话,就可以满足这类需求了。

Read more…

Categories: 移动互联, 语言编程 Tags:

iOS开发之自定义系统的UIActionSheet修改按钮的属性

March 6th, 2013 No comments

iOS中UIActionSheet在SDK中只提供了少数几种样式,这些样式基本可以满足开发需求了,但是也会遇到比较麻烦的要求,这是就需要单独定制UIActionSheet,通过修改button的属性来实现修改,如果是ios4或者之前版本操作起来比较复杂,但是ios5以后,UIActionSheet中的button换成UIButton类型以后就比较容易了,可以直接便利UIActionSheet的所有subview,找到对应的button就可以修改它的属性,实现还是很简单的,需要注意的是UIActionSheet中button列表中的button索引id可以直接使用tag属性来直接获取,这就很方便找到它们了

Read more…

Categories: 移动互联, 语言编程 Tags:

iOS开发之自定义系统的UIAlertView调整Alert字体

March 6th, 2013 No comments

iOS中UIAlertView很少有单独定制的需要,一般采用系统样式即可,但是有时候一些特殊的需求(比如:UIAlertView的字体,字体大小,字体对齐方式变化等)就不得不需要单独对UIAlertView进行定制了。
定制的方法也很简单,在viewController的Delegate实现方法willPresentAlertView中遍历UIAlertView下面所有subview,找到对应的UILabel再对UILabel的属性进行修改即可。操作基本一致。

Read more…

Categories: 移动互联, 语言编程 Tags:

iOS开发之NSDateFormatter的NSLocale使用en_US_POSIX还是en_US

March 6th, 2013 No comments

iOS SDK提供的日期时间格式化对象需要使用到NSLocale对象来控制日期和时间的显示,en_US为标准的格式往往使用的最多,但是习惯使用Java或C#的朋友会忽略掉iOS SDK提供的另一种格式en_US_POSIX,并且两种格式运行后的效果完全一样。

Read more…

Categories: 移动互联, 语言编程 Tags:

iOS开发之让UITableView滚动控制并返回到最顶端

March 6th, 2013 1 comment

UITableView控件在iPhone/iPad开发过程的控制有很多很有意思的地方,比如实现在Android中常见的滚动控制并返回到最顶端效果,通过以下代码可以实现,但是需要注意的是,iOS的SDK中的UITableView的scrollRectToVisible方法的参数不能是全0的Rect,否则无效。

参考代码;

1
2
3
4
5
//CGRectMake(0, 0, 1, 1)可以直接返回到UITableView的最顶端
[tableview scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
 
//CGRectMake(0, 0, 0, 0)设定无效
//[tableview scrollRectToVisible:CGRectMake(0, 0, 0, 0) animated:NO];
Categories: 移动互联, 语言编程 Tags:

iOS开发之Relaese时关闭NSLog使之不在控制台显示

March 5th, 2013 No comments

iOS开发过程中,记录log最常用的莫过于使用NSLog()函数,DEBUG时默认情况下NSLog()会把log输出到控制台显示,而App发布以后我们就不需要将Log显示了,这时候的策略就是不显示或者将log写入到日志文件。

通过以下方法可以可以直接关闭NSLog使之不在控制台显示。

1
2
3
4
5
6
7
8
//
// Close all NSLog()
//
#ifdef __OPTIMIZE__
# define NSLog(...) {}
#else
# define NSLog(...) NSLog(__VA_ARGS__)
#endif

以上方法主要运用了Objective-c编译器的__OPTIMIZE__选项,Release模式下会定义__OPTIMIZE__,Debug模式下则不会

Categories: 移动互联, 语言编程 Tags:

iOS开发之创建背景透明或含有自定义图片的UIToolbar

March 5th, 2013 2 comments

iOS系统自带的UIToolbar的样式简单,往往不能满足开发或特殊目的的需要,例如设置完全背景透明的UIToolbar或者自定义UIToolbar的背景色,这时候就需要对UIToolbar进行单独定制。
设置UIToolbar背景透明,只需要设置UIToolbar的backgroundColor为[UIColor clearColor]即可,如果需要单独定制UIToolbar的背景色,则需要继承并自己实现UIToolbar对象。
直接修改背景色请参照以下的方法1,继承并自己实现UIToolbar对象请参照方法2。

Read more…

Categories: 移动互联, 语言编程 Tags: