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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容