项目总结-2

在cocoapods的podfile文件更新和下载第三方框架

  • 安装,pod install --no-repo-update
  • 更新,pod update --no-repo-update
  • --no-repo-update:不要更新仓库,迅速加载第三方框架
  • 使用cocopods管理第三方框架后,都是通过.workspace工作空间来写代码的

跳转控制器的3种方式

  • modal
  • push
  • 更改窗口的根控制器

让cell的分割线占据全屏的3种方案

  • 方案一:自定义分隔线

  • 方案二:修改系统的属性

    • iOS7,只需要修改设置self.tableView.separatorInset = UIEdgeInsetsZero就可以使分隔线占据全屏;
    • 在iOS8,还要设置cell.layoutMargins = UIEdgeInsetsZero;
  • 方案三(万能的):重写cell的setFrame方法

    • 先取消系统的分割线self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    • 设置tableView背景色为分割线颜色
    • 将cell的高度减1,其他不变
//调整cell的frame
-(void)setFrame:(CGRect)frame
{
    frame.size.height -= 1;
    //给cell 的frame 赋值
    [super setFrame:frame];
}

关于修改控件的圆角半径会使屏幕帧数下降的问题

  self.iconView.layer.cornerRadius = self.iconView.width * 0.5;
    // 超出主层边框就会被裁剪掉
    self.iconView.layer.masksToBounds = YES;
  • 在iOS8之前,确实存在这个问题,但是在iOS9,帧数不会下降,苹果已经修复了这个问题

从Xib中加载View注意事项

  • 必须要固定尺寸
  • 要在ViewDidLoad设置子控件的位置,在viewDidLayoutSubviews布局子控件
  • 从Xib中加载View就会调用awakeFromNib方法,会把xib中所有的属性全部设置
  • 例如:
- (void)awakeFromNib
{
    UIImage *image = self.loginRegisterBtn.currentBackgroundImage;
    image = [image stretchableImageWithLeftCapWidth:image.size.width * 0.5 topCapHeight:image.size.height * 0.5];
    [self.loginRegisterBtn setBackgroundImage:image forState:UIControlStateNormal];
}

你可能感兴趣的:(项目总结-2)