iOS开发中的实用小技巧(01)

1.   iOS7以后带有导航栏的控制器的视图坐标是从屏幕左上角开始计算了,这和我们之前一直从导航栏以下开始计算的使用习惯有点冲突,解决的方法就是在viewDidLoad里面添加下面一行代码:

self.edgesForExtendedLayout = UIRectEdgeNone;

2.   UITableView不想出现多于数据个数的cell分割线,只要在初始化tableview的时候加上下面一句代码即可:

m_tableView.tableFooterView = [[UIView alloc]init];//m_tableView是定义的成员表视图对象

3.   UITextView控件,文本默认是居中显示的,如果想让它在输入的时候就顶部对齐,只需在其初始化前(最好在viewDidLoad里面)添加下面一行代码即可:

self.automaticallyAdjustsScrollViewInsets = NO;

4.   修改UITextField的placeholder占位语的颜色和字体。这里提供两种比较实用的方法,代码如下:

(1)通过富文本属性设置。

//m_phoneNumTxtfld是一个成员变量

m_phoneNumTxtfld = [[UITextField alloc]initWithFrame:CGRectMake(50, 0, kMainWidth, 42)];

m_phoneNumTxtfld.font = [UIFont systemFontOfSize:10.0];

m_phoneNumTxtfld.placeholder = @"请输入用户名/手机号";

m_phoneNumTxtfld.keyboardType = UIKeyboardTypeNumberPad;

m_phoneNumTxtfld.delegate = self;

[m_phoneNumTxtfld setValue:[UIColor redColor]forKeyPath:@"_placeholderLabel.textColor"];

[m_phoneNumTxtfld setValue:[UIFont    systemFontOfSize:10.0]forKeyPath:@"_placeholderLabel.font"];

[view addSubview:m_phoneNumTxtfld];

(2)通过KVC设置。

//m_phoneNumTxtfld是一个成员变量

m_phoneNumTxtfld = [[UITextField alloc]initWithFrame:CGRectMake(50, 0, kMainWidth, 42)];

m_phoneNumTxtfld.font = [UIFont systemFontOfSize:10.0];

m_phoneNumTxtfld.keyboardType = UIKeyboardTypeNumberPad;

m_phoneNumTxtfld.delegate = self;

NSString *holderText = @"请输入用户名/手机号";

NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc]initWithString:holderText];

[placeholder  addAttribute:NSForegroundColorAttributeName

value:[UIColor redColor]

range:NSMakeRange(0, holderText.length)];

[placeholder  addAttribute:NSFontAttributeName

value:[UIFont systemFontOfSize:10.0]

range:NSMakeRange(0, holderText.length)];

m_phoneNumTxtfld.attributedPlaceholder = placeholder;

[view addSubview:m_phoneNumTxtfld];

注:占位语的字体大小要和文本的字体大小保持一致,否则可能会出现上下不对齐的问题。

5.  UITableVIew 分隔线左对齐

iOS7之前表视图的分割线是左对齐模式,iOS7之后开始分割线距离左边有一定距离了,个人感觉这个间隔其实挺好看的,整体看着也舒服多了,但是有的产品非要设计成以往的形式,那作为开发的我们也是没有办法的,只能照做(如果你说服不了他的情况)。其实设置左对齐的方式比较多,比如自定义分割线等,这里只说一个比较简单的方法,直接用表视图的委托方法来做。代码如下。

//分割线左对齐

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

{

if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {

[cell setSeparatorInset:UIEdgeInsetsZero];

}

if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {

[cell setLayoutMargins:UIEdgeInsetsZero];

}

if([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]){

[cell setPreservesSuperviewLayoutMargins:NO];

}

}

6.  设置UITableViewCell 打勾选择模式UITableViewCellAccessoryCheckmark的颜色

这个很简单,一句代码搞定,不多说了,直接代码说明吧

cell.tintColor = [UIColor redColor];//设置红色的打勾。

你可能感兴趣的:(iOS开发中的实用小技巧(01))