UITabBarController可以实现多个UIViewController独立显示,但是各个UIViewController之间的关系的控制就不太好控制了,特别是没有记录最近一次选中的tab编号,有些需求的实现就比较困难了,比如在A tab下通过一个事件可以切换到上一次选中的B tab,或者A tab中的事件需要切换到B tab并且在B tab处理完成后可以返回到A tab。这时如果可以知道UITabBarController上一次选中的tab编号的话,就可以满足这类需求了。
Read more…
iOS中UIActionSheet在SDK中只提供了少数几种样式,这些样式基本可以满足开发需求了,但是也会遇到比较麻烦的要求,这是就需要单独定制UIActionSheet,通过修改button的属性来实现修改,如果是ios4或者之前版本操作起来比较复杂,但是ios5以后,UIActionSheet中的button换成UIButton类型以后就比较容易了,可以直接便利UIActionSheet的所有subview,找到对应的button就可以修改它的属性,实现还是很简单的,需要注意的是UIActionSheet中button列表中的button索引id可以直接使用tag属性来直接获取,这就很方便找到它们了
Read more…
iOS中UIAlertView很少有单独定制的需要,一般采用系统样式即可,但是有时候一些特殊的需求(比如:UIAlertView的字体,字体大小,字体对齐方式变化等)就不得不需要单独对UIAlertView进行定制了。
定制的方法也很简单,在viewController的Delegate实现方法willPresentAlertView中遍历UIAlertView下面所有subview,找到对应的UILabel再对UILabel的属性进行修改即可。操作基本一致。
Read more…
iOS SDK提供的日期时间格式化对象需要使用到NSLocale对象来控制日期和时间的显示,en_US为标准的格式往往使用的最多,但是习惯使用Java或C#的朋友会忽略掉iOS SDK提供的另一种格式en_US_POSIX,并且两种格式运行后的效果完全一样。
Read more…
UITableView控件在iPhone/iPad开发过程的控制有很多很有意思的地方,比如实现在Android中常见的滚动控制并返回到最顶端效果,通过以下代码可以实现,但是需要注意的是,iOS的SDK中的UITableView的scrollRectToVisible方法的参数不能是全0的Rect,否则无效。
参考代码;
//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]; |
//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];
iOS开发过程中,记录log最常用的莫过于使用NSLog()函数,DEBUG时默认情况下NSLog()会把log输出到控制台显示,而App发布以后我们就不需要将Log显示了,这时候的策略就是不显示或者将log写入到日志文件。
通过以下方法可以可以直接关闭NSLog使之不在控制台显示。
//
// Close all NSLog()
//
#ifdef __OPTIMIZE__
# define NSLog(...) {}
#else
# define NSLog(...) NSLog(__VA_ARGS__)
#endif |
//
// Close all NSLog()
//
#ifdef __OPTIMIZE__
# define NSLog(...) {}
#else
# define NSLog(...) NSLog(__VA_ARGS__)
#endif
以上方法主要运用了Objective-c编译器的__OPTIMIZE__选项,Release模式下会定义__OPTIMIZE__,Debug模式下则不会
iOS系统自带的UIToolbar的样式简单,往往不能满足开发或特殊目的的需要,例如设置完全背景透明的UIToolbar或者自定义UIToolbar的背景色,这时候就需要对UIToolbar进行单独定制。
设置UIToolbar背景透明,只需要设置UIToolbar的backgroundColor为[UIColor clearColor]即可,如果需要单独定制UIToolbar的背景色,则需要继承并自己实现UIToolbar对象。
直接修改背景色请参照以下的方法1,继承并自己实现UIToolbar对象请参照方法2。
Read more…
Recent Comments