记录做项目中遇到的一些问题和收获

设置渐变色

- (void)setupBackgroundColor{

 CAGradientLayer *gradientLayer = [CAGradientLayer layer];

 gradientLayer.frame = CGRectMake(0, 0, kScreenWidth, 42); // 设置显示的frame

 gradientLayer.colors = @[(id)macro_Color(0x877D79).CGColor,(id)macro_Color(0x4F4744).CGColor]; // 设置渐变颜色

 gradientLayer.startPoint = CGPointMake(0, 0);  //

 gradientLayer.endPoint = CGPointMake(1, 0);  //1.0从左往右 0.1从上往下

 [self.layer insertSublayer:gradientLayer atIndex:0];

}

毛玻璃

+ (void)setGlassBackground:(UIView *)view{

    UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];

    UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:effect];

    effectView.frame = view.bounds;

    [view insertSubview:effectView atIndex:0];

//    [view addSubview:effectView];

}

tableView滚动到最后一行

[self reloadData];

 dispatch_async(dispatch_get_main_queue(),^{

 [self scrollToBottom];

 });

- (void)scrollToBottom{

 NSInteger lastSectionRowCount = [self.dataSource tableView:selfnumberOfRowsInSection:0];

 NSIndexPath *indexPath = [NSIndexPath indexPathForRow:lastSectionRowCount-1inSection:0];

 [self scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTopanimated:YES];

}

加载本地图片

如果本地图片超过100k就不imageNamed:这样加载,因为这样加载会缓存到内存中,释放不了。

使用下面的方式加载图片,好处是不需要判断2x还是3x。

注意点:图片直接拖入工程中,不能拖入Assets,因为Assets中的图片只能用imageNamed:加载

+ (UIImage *)localImageNamed:(NSString *)name{

    NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:name];

    return [UIImage imageWithContentsOfFile:path];

}

Masnory约束scrollView中的子控件

由于之前一直用xib加载,所以控件都是用的自动布局,然后简单的手写控件用Masnory,然后在scrollView中的约束比较困难,最后终于弄出来了,可喜可贺啊。

最后补充一下,drawRect这个函数,每次只加载一次,而且获取到的都是控件的真实长度。

[view mas_makeConstraints:^(MASConstraintMaker *make) { //通过frame设定width去约束

 make.top.equalTo(self.mas_top);

 make.leading.equalTo(self.mas_leading).mas_offset(idx*kScreenWidth);

 make.width.equalTo(self.mas_width).offset(0);

 make.height.equalTo(self.mas_height);

 }];

 

 

问题

1.scrollView上添加几个tableView,然后设置tableView的背景色没效果,设置tableView.backgroundView然后设置backgroundView的背景色才有效果,不晓得是什么原因。

2.在某一页设置self.tableView.estimatedRowHeight = 0; 这个属性后,在ios9.3.5的iPod上运行时会奔溃,其他也设置这个属性的几页却没有事情,排查是一行一行注释,发现只有添加了这行就必定奔溃,最后解决是self.tableView.estimatedRowHeight = 44;设一个不为0的值,就不会崩溃。

3.在控件中用Masonry约束控件时- (void)updateConstraints 网上都说约束加到这个方法里,但是ios9.3.5有的页面不走这个方法,导致页面加载不出来,最后把不走这个方法的走直接写到了addSubViews后面就没有问题。

你可能感兴趣的:(iOS开发)