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];//設置紅色的打勾。