我想问一下subview.origin的协调是否可能是否定的?
当我使用下面的函数重新定位我的子视图的帧时,例如,从(0,0,宽度,高度)到(0,-200,宽度,高度)并使用NSLog打印出最终的帧.origin
[UIView animateWithDuration:0.4f
animations:^{
self.sub.frame = CGRectMake(0, -200, width, height);
}
completion:^(BOOL finished) {
NSLog(@"(%f, %f)", self.sub.frame.x, self.sub.frame.y);
}];
发现输出仍然是(0,0),这很令人困惑!
那么,在父视图中,子视图的来源是否有限?
真诚地感谢!!!!!
解决方案:
主要问题是从故事板创建的视图默认选择“使用自动布局”。这将禁用上面的功能。取消选择它将解决问题!
答案 0 :(得分:1)
是的,当然!
尝试给出一些延迟,视图将获得负坐标
[UIView animateWithDuration:0.4f
animations:^{
self.sub.frame = CGRectMake(0, -200, width, height);
}
completion:^(BOOL finished)
{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.001 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"(%f, %f)", self.sub.frame.x, self.sub.frame.y);
});
}];