自定义UITableViewCell设置setFrame无效!

    今天碰到一个奇怪问题。页面结构为如下图:



 

由于collectionView是横向显示,小于5个时显示一行,大于5时,显示两行。这时下面自定义的tableviewcell就需要动态的修改位置了。用setFrame修改位置。这时问题来了,进入到这个页面后,点它里面商品,进入详细页后,再返回,tableviewcell的位置就不对了,向下移动了不少。该iphone5上没这问题,iphone6\plus都有该问题。郁闷了半天,锁定问题后,试了多种方法。还是不行。后来用viewDidLayoutSubviews或viewWillLayoutSubviews方法解决了。在该方法,重新设下frame,重布下局。就ok了。

- (void) viewDidLayoutSubviews{
    if (_mdExhibitVo.works.count <= 5) {
        self.collectionView.frame = CGRectMake(0, 0, ScreenWidth, (ScreenHeight/3)+45);
        [cell setFrame:cellFrame];
    }
}

 

猜你喜欢

转载自wenxin2009.iteye.com/blog/2229216