1.点击 cell, 切换 cell.selected 状态,选中和未被选中两种状态
在自定义 cell 中添加selected 的 set 方法,可以在里面进行selected的切换
- (void)setSelected:(BOOL)selected{
[super setSelected:selected];
self.shopImageV.image = [UIImage imageNamed:selected?@"shophit":@"shopdefault"];
//NSLog(@"%@",selected?@"选中":@"未被选中");
// Configure the view for the selected state
}
2.UICollectionViewFlowLayout类是一个具体的布局对象,组织成一个项目的每个部分.
UICollectionViewFlowLayout *flowLayout=[[UICollectionViewFlowLayout alloc] init];
//纵向滑动
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
//定义每个Section 的 margin(边缘) UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
flowLayout.sectionInset = UIEdgeInsetsMake(4, 16, 4, 16);
// item 横向间距
flowLayout.minimumLineSpacing = 16.f;
// item 纵向间距
flowLayout.minimumInteritemSpacing = 0;
//定义每个UICollectionViewCell 的大小
flowLayout.itemSize = CGSizeMake((kScreenW - 5* 16)/4,(kScreenW - 5* 16)/4+36);
3.UITableView的UITableViewStyleGrouped风格顶部空白问题
在使用UITableView的UITableViewStyleGrouped的属性时,会遇到每组的顶部空白如下图:
步骤 1:设置UITableView的两个代理就可以解决:
// 设置headView在代理方法中操作能避免空白
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
return [UIView new];
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
//header的高度不要设置成0,设置成0的话还是会有空白的
//CGFLOAT_MIN 表示无限接近于0
return CGFLOAT_MIN;
}
步骤 2:设置UITableView的初始化时 要做 iOS 11的适配
if (@available(iOS 11.0, *)) {
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;//UIScrollView也适用
_tableView.estimatedRowHeight = 0;
_tableView.estimatedSectionHeaderHeight = 0;
_tableView.estimatedSectionFooterHeight = 0;
}else {
self.automaticallyAdjustsScrollViewInsets = NO;
}
网友评论