SDAutoLayout 坑人地方的原因

2018-03-14  本文已影响593人  iOS开发小学生

1.因为他是一个延迟加载的效果,所以要等到内容完毕后,才能确定位置。

2.在某些项目需求的地方会出现很奇葩的效果,就是不能得到我们先要的效果!

3.本人亲身经历采坑(下面是代码粘贴部分)

ui视图在初始化时候的位置

self.bottomView.frame = CGRectMake(0,CGRectGetMaxY(self.certificateView.frame)+viewScreenWidth(48)+viewScreenWidth(128),screenWidth, screenHeight-CGRectGetMaxY(self.certificateView.frame)-viewScreenWidth(48));

ui视图在初始化时候的位置

self.sharebottomView.frame = CGRectMake(screenWidth,CGRectGetMaxY(self.certificateView.frame)+viewScreenWidth(40)+viewScreenWidth(128),screenWidth, screenHeight-CGRectGetMaxY(self.certificateView.frame)-viewScreenWidth(40));

在界面动画改变时的效果位置(仔细看前后是有变化的)

-(void)shareButtonClick{

    [UIView animateWithDuration:0.5 animations:^{

        self.certificateView.bottomView.frame = CGRectMake(-screenWidth,CGRectGetMaxY(self.certificateView.certificateView.frame)+viewScreenWidth(48),screenWidth, screenHeight-CGRectGetMaxY(self.certificateView.certificateView.frame)-viewScreenWidth(48));

        self.certificateView.sharebottomView.frame = CGRectMake(0,CGRectGetMaxY(self.certificateView.certificateView.frame)+viewScreenWidth(40),screenWidth, screenHeight-CGRectGetMaxY(self.certificateView.certificateView.frame)-viewScreenWidth(40));

      // self.view.transform = CGAffineTransformIdentity;

    }];

}

在界面动画改变时的效果位置(仔细看前后是有变化的)

-(void)temporarilyNotShareClick{

    [UIView animateWithDuration:0.5 animations:^{

        self.certificateView.bottomView.frame = CGRectMake(0,CGRectGetMaxY(self.certificateView.certificateView.frame)+viewScreenWidth(48),screenWidth, screenHeight-CGRectGetMaxY(self.certificateView.certificateView.frame)-viewScreenWidth(48));

        self.certificateView.sharebottomView.frame = CGRectMake(screenWidth,CGRectGetMaxY(self.certificateView.certificateView.frame)+viewScreenWidth(40),screenWidth, screenHeight-CGRectGetMaxY(self.certificateView.certificateView.frame)-viewScreenWidth(40));

        // self.view.transform = CGAffineTransformIdentity;

    }];

}

上一篇 下一篇

猜你喜欢

热点阅读