我可能有一个想法,你可以试试。我在这里假设您只使用从 UIView 继承的对象,例如 UIButton、UILabel、UITextField 等。您可以首先将所有当前帧放入一个数组中,然后将所有元素放入一个数组中。这样,您可以循环第二个数组,并且对于每个元素,将 Y 设置为 array2[i]-20。
NSMutableArray *currentFrames = [[NSMutableArray alloc] init];
for(int i = 0; i<10; i++) //10 being the number of elements, assuming they have tags from 0 to 9
[currentFrames addObject:[NSValue valueWithCGRect:[self.view viewWithTag:i].frame]];
for(int i = 0; i<currentFrames.count; i++)
{
UIView *v = [self.view viewWithTag:i];
[v setFrame:CGRectMake(v.frame.origin.x, v.frame.origin.y-20, v.frame.size.width, v.frame.size.height)];
}