當(dāng)控制器界面有scrollView的時(shí)候可能view的frame會(huì)往下走
self.automaticallyAdjustsScrollViewInsets = NO;
文件名后綴相關(guān)的東西
//從路徑中獲得完整的文件名 (帶后綴)
NSString *fileName = [filePath lastPathComponent];
//獲得文件名 (不帶后綴)
NSString *fileName1 = [filePath stringByDeletingPathExtension];
//獲得文件的后綴名 (不帶'.')
NSString *suffix = [filePath pathExtension];
通過(guò)字符串執(zhí)行方法
SEL selector = NSSelectorFromString(selectorName);
//執(zhí)行方法(如果直接使用[self performSelector:selector]會(huì)有警告,解決辦法:http://www.tuicool.com/articles/iu6zuu)
[self performSelector:selector withObject:nil afterDelay:0.0];
設(shè)置控件的邊界
//設(shè)置按鈕的樣式
- (void)setupShoppingBtn
{
self.shopingBtn.layer.cornerRadius = 3;
self.shopingBtn.layer.masksToBounds = YES;
self.shopingBtn.layer.borderColor = [UIColor cz_colorWithHex:0xd9d9d9].CGColor;
self.shopingBtn.layer.borderWidth = 1;
}
設(shè)置鍵盤(pán)在tableView滾動(dòng)的時(shí)候消失掉:
//設(shè)置鍵盤(pán)在tableview滾動(dòng)的時(shí)候消失.
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
設(shè)置tableView的cell之間的分隔線的長(zhǎng)短
//設(shè)置的效果是與屏幕寬對(duì)齊,也可以自定義值
self.tableView.separatorInset = UIEdgeInsetsZero;
設(shè)置tableView的cell的點(diǎn)擊效果為無(wú)
cell.selectionStyle = UITableViewCellSelectionStyleNone;
設(shè)置視圖或者繼承自視圖控件的邊框
UIView *baseView = [[UIView alloc]init];
baseView.layer.borderColor = [UIColor redColor].CGColor; //設(shè)置邊框的顏色
baseView.layer.borderWidth = 2; //設(shè)置邊框的寬度
圖片渲染,系統(tǒng)默認(rèn)會(huì)渲染成藍(lán)色,比如說(shuō)tabBar
//方式一
[[UIImage imageNamed:@""]imageWithRenderingMode:(UIImageRenderingMode)];
//方式二
在Assets.xcassets中選中圖片,然后選擇右邊的第三個(gè)屬性的Render As這個(gè)屬性,然后修改即可.
設(shè)置tabbar/navigationBar上的字體顏色
1>設(shè)置tabbarItem上的字體的顏色:
A:"注意是控制器的tabBarItem的設(shè)置屬性"
//普通狀態(tài)下的文字屬性
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14]; //字號(hào)
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor]; //前景色
[vc.tabBarItem setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
//選中狀態(tài)下的文字屬性
NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor]; //前景色
[vc.tabBarItem setTitleTextAttributes:selectedAttrs forState:UIControlStateSelected];
B:"注意是全局設(shè)置所有tabBarItem的屬性"
UITabBarItem *item = [UITabBarItem appearance];
//普通狀態(tài)下的文字屬性
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
[item setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
//選中狀態(tài)下的文字屬性
NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor];
[item setTitleTextAttributes:normalAttrs forState:UIControlStateSelected];
2>設(shè)置navigationItem上的字體顏色及圖標(biāo)的渲染色
A:"設(shè)置navigationBar的渲染色,影響到leftItem/rightItem的圖像的背景色顏色以及文字顏色"
self.navigationController.navigationBar.tintColor = [UIColor redColor];
B:"這個(gè)是navigationBar設(shè)置title屬性"
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
[self.navigationController.navigationBar setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
C:"這個(gè)是單獨(dú)的item獨(dú)自設(shè)定文字屬性"
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
[self.navigationItem.leftBarButtonItem setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
設(shè)置同組cell之間的間距問(wèn)題:"注意默認(rèn)同組之間是沒(méi)有間距的"
巧妙利用TableView的背景作為分割線---萬(wàn)能方式:"設(shè)置cell的frame"
關(guān)鍵點(diǎn):當(dāng)我們不管是賦值cell的frame還是自動(dòng)計(jì)算行高,都會(huì)計(jì)算出來(lái)的frme給cell的frame賦值
注意點(diǎn):如果要看起來(lái)有間距感,可以設(shè)置tableView的背景顏色,并且為了美觀可以將separatorStyle設(shè)置為None
A:OC代碼://重寫(xiě)setFrame方法
-(void)setFrame:(CGRect)frame {
//只修改高度
frame.size.height-=5; //當(dāng)為1的時(shí)候可以作為分割線
//調(diào)用系統(tǒng)方法設(shè)置
[super setFrame:frame];
}
B:SWIFT代碼:
override var frame: CGRect{
didSet{
var newFrame = frame
newFrame.size.height -= 5
super.frame = newFrame
}
}
設(shè)置分割線樣式或者長(zhǎng)短
1>設(shè)置分割線樣式:系統(tǒng)的
self.tableView.separatorStyle = UITableViewCellSelectionStyleNone;
2>設(shè)置分割線的長(zhǎng)短問(wèn)題:
//表示和cell的寬度一樣長(zhǎng)
self.tableView.separatorInset = UIEdgeInsetsZero;
3>將分割線的樣式設(shè)置為None,然后再自定義一個(gè)view加入到cell當(dāng)中,或者是以tableView的背景色來(lái)天然作為分割線
Swift中微博項(xiàng)目截取超鏈接標(biāo)簽語(yǔ)言中的內(nèi)容:
例如如下字符串:<a rel="nofollow">新浪微博</a>"
代碼如下:
//字符串">的range:leadingRange
guard let leadingRange: Range = (statusModel?.source?.range(of: "\">")) else{
return ""
}
//字符串</a>的range:tailingRange
let tailingRange: Range = (statusModel?.source?.range(of: "</a>"))!
//新字符創(chuàng)的range為leadingRange的高bound以及tailingRange的低bound
let newRange: Range = Range(uncheckedBounds: (lower: leadingRange.upperBound, upper: tailingRange.lowerBound))
//然后取出新的range所對(duì)應(yīng)的字符串
let sourceString: String = (statusModel?.source?.substring(with: newRange))!
return sourceString
設(shè)置導(dǎo)航欄隱藏,注意以下兩種隱藏式不一樣的
A:"navigationBarHidden 隱藏整個(gè)導(dǎo)航欄控制器"
self.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = NO;
B:"navigationBar.Hidden只是隱藏導(dǎo)航對(duì)象中的navigationBar;"
self.navigationController.navigationBar.Hidden = YES;
self.navigationController.navigationBar.Hidden = NO;
清除Xcode8控制臺(tái)上多余消息
1>選擇Product->Scheme->Edit Scheme ...或者直接按 command + shift + < 快捷鍵泽裳,
2>在彈出的窗口中Environment Variables 下添加 OS_ACTIVITY_MODE disable
更多的iOS開(kāi)發(fā)的小技巧和經(jīng)驗(yàn)請(qǐng)參考:多年iOS開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)(一)