当控制器界面有scrollView的时候可能view的frame会往下走
self.automaticallyAdjustsScrollViewInsets = NO;
文件名后缀相关的东西
//从路径中获得完整的文件名 (带后缀)
NSString *fileName = [filePath lastPathComponent];
//获得文件名 (不带后缀)
NSString *fileName1 = [filePath stringByDeletingPathExtension];
//获得文件的后缀名 (不带'.')
NSString *suffix = [filePath pathExtension];
通过字符串执行方法
SEL selector = NSSelectorFromString(selectorName);
//执行方法(如果直接使用[self performSelector:selector]会有警告,解决办法:http://www.tuicool.com/articles/iu6zuu)
[self performSelector:selector withObject:nil afterDelay:0.0];
设置控件的边界
//设置按钮的样式
- (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;
}
设置键盘在tableView滚动的时候消失掉:
//设置键盘在tableview滚动的时候消失.
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
设置tableView的cell之间的分隔线的长短
//设置的效果是与屏幕宽对齐,也可以自定义值
self.tableView.separatorInset = UIEdgeInsetsZero;
设置tableView的cell的点击效果为无
cell.selectionStyle = UITableViewCellSelectionStyleNone;
设置视图或者继承自视图控件的边框
UIView *baseView = [[UIView alloc]init];
baseView.layer.borderColor = [UIColor redColor].CGColor; //设置边框的颜色
baseView.layer.borderWidth = 2; //设置边框的宽度
图片渲染,系统默认会渲染成蓝色,比如说tabBar
//方式一
[[UIImage imageNamed:@""]imageWithRenderingMode:(UIImageRenderingMode)];
//方式二
在Assets.xcassets中选中图片,然后选择右边的第三个属性的Render As这个属性,然后修改即可.
设置tabbar/navigationBar上的字体颜色
1>设置tabbarItem上的字体的颜色:
A:"注意是控制器的tabBarItem的设置属性"
//普通状态下的文字属性
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14]; //字号
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor]; //前景色
[vc.tabBarItem setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
//选中状态下的文字属性
NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor]; //前景色
[vc.tabBarItem setTitleTextAttributes:selectedAttrs forState:UIControlStateSelected];
B:"注意是全局设置所有tabBarItem的属性"
UITabBarItem *item = [UITabBarItem appearance];
//普通状态下的文字属性
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
[item setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
//选中状态下的文字属性
NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor];
[item setTitleTextAttributes:normalAttrs forState:UIControlStateSelected];
2>设置navigationItem上的字体颜色及图标的渲染色
A:"设置navigationBar的渲染色,影响到leftItem/rightItem的图像的背景色颜色以及文字颜色"
self.navigationController.navigationBar.tintColor = [UIColor redColor];
B:"这个是navigationBar设置title属性"
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
[self.navigationController.navigationBar setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
C:"这个是单独的item独自设定文字属性"
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
[self.navigationItem.leftBarButtonItem setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
设置同组cell之间的间距问题:"注意默认同组之间是没有间距的"
巧妙利用TableView的背景作为分割线---万能方式:"设置cell的frame"
关键点:当我们不管是赋值cell的frame还是自动计算行高,都会计算出来的frme给cell的frame赋值
注意点:如果要看起来有间距感,可以设置tableView的背景颜色,并且为了美观可以将separatorStyle设置为None
A:OC代码://重写setFrame方法
-(void)setFrame:(CGRect)frame {
//只修改高度
frame.size.height-=5; //当为1的时候可以作为分割线
//调用系统方法设置
[super setFrame:frame];
}
B:SWIFT代码:
override var frame: CGRect{
didSet{
var newFrame = frame
newFrame.size.height -= 5
super.frame = newFrame
}
}
设置分割线样式或者长短
1>设置分割线样式:系统的
self.tableView.separatorStyle = UITableViewCellSelectionStyleNone;
2>设置分割线的长短问题:
//表示和cell的宽度一样长
self.tableView.separatorInset = UIEdgeInsetsZero;
3>将分割线的样式设置为None,然后再自定义一个view加入到cell当中,或者是以tableView的背景色来天然作为分割线
Swift中微博项目截取超链接标签语言中的内容:
例如如下字符串:<a href="http://weibo.com" 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>"))!
//新字符创的range为leadingRange的高bound以及tailingRange的低bound
let newRange: Range = Range(uncheckedBounds: (lower: leadingRange.upperBound, upper: tailingRange.lowerBound))
//然后取出新的range所对应的字符串
let sourceString: String = (statusModel?.source?.substring(with: newRange))!
return sourceString
设置导航栏隐藏,注意以下两种隐藏式不一样的
A:"navigationBarHidden 隐藏整个导航栏控制器"
self.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = NO;
B:"navigationBar.Hidden只是隐藏导航对象中的navigationBar;"
self.navigationController.navigationBar.Hidden = YES;
self.navigationController.navigationBar.Hidden = NO;
清除Xcode8控制台上多余消息
1>选择Product->Scheme->Edit Scheme ...或者直接按 command + shift + < 快捷键,
2>在弹出的窗口中Environment Variables 下添加 OS_ACTIVITY_MODE disable
更多的iOS开发的小技巧和经验请参考:多年iOS开发经验总结(一)