今天上午用UICollectionView做瀑布流的时候,遇到一个问题折腾了半天。
大家都知道UICollectionViewCell 一般都会做自定义的操作,我自己定义了BNSBookListCell类,
然后在cell上放了一个UImageView和UIlabel
@property (nonatomic, strong) UIImageView *avatarImageView;
@property (nonatomic, strong) UILabel *nameLabel;
我使用类NSLayoutConstraint里面的方法做自动布局(autolayout),
运行后发现UIImageView上显示的图片大小为其实际尺寸,并没有按照
contentMode=UIViewContentModeScaleAspectFit;进行缩放。
找了半天原因,原来是因为在UICollectionView的dataSource的代理方法中多加了一句话
cell.contentView.translatesAutoresizingMaskIntoConstraints = NO;
究其原因是因为以前在使用UITableView时加上这一句话是没有问题的,
而在UICollectionView上会有UICollectionViewDelegateFlowLayout里的代理方法
控制UICollectionViewCell的布局。