subview.origin可以使用负面协调吗?

时间:2014-10-23 06:53:02

标签: ios objective-c

我想问一下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),这很令人困惑!

那么,在父视图中,子视图的来源是否有限?

真诚地感谢!!!!!

解决方案:

主要问题是从故事板创建的视图默认选择“使用自动布局”。这将禁用上面的功能。取消选择它将解决问题!

1 个答案:

答案 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);
         });
     }];