iOS學習筆記-如何獲取xib的autolayout後的frame
阿新 • • 發佈:2019-01-03
對於檢視view來說,如果想獲取xib中自動佈局後的frame,需要在layoutSubviews方法中獲取自動佈局後的frame才是準確的
- (void)layoutSubviews
{
[super layoutSubviews];
[self.contentView setNeedsLayout];
[self.contentView layoutIfNeeded];
//在這裡獲取frame
}
對於viewController來說,如果想獲取xib中自動佈局後的frame,需要在-(void)viewDidLayoutSubviews,-(void)viewWillLayoutSubviews方法中
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
self.moveItem.frame = CGRectMake(0, 0, self.scanView.frame.size.width, 10); //建立檢視需要在viewdidload等方法中,在這裡指定frame
[UIView animateKeyframesWithDuration:2 delay:0 options:UIViewKeyframeAnimationOptionRepeat animations:^{
self.moveItem .frame = CGRectMake(0, self.scanView.frame.size.height - 10, self.scanView.frame.size.width, 10);;
} completion:nil];//這裡的frame值就是正確的,故可以進行動畫
}