Перемещение UIView при нажатии UIButton

моя иерархия представлений следующая:

BigView
- UIScrollView
  - View 1
  - View 2
  - View 3
- UIView
  - UIButton

теперь я хочу, чтобы когда я нажимаю кнопку UIButton, BigView (который также включает в себя кнопку) перемещался на 100 пикселей вверх (поэтому части BigView больше не видны), а другой UIView становится видимым в свободном пространстве под Большой вид.

Вы понимаете проблему? :)

Как я могу этого добиться?

Заранее спасибо!


person trnc    schedule 07.09.2010    source источник
comment
Что вы имеете в виду под тем, что включает и кнопку? UIView может иметь только одного родителя.   -  person Shaggy Frog    schedule 07.09.2010
comment
просто кнопка находится в подвиде большого представления. но важно то, как я могу переместить анимированный вид наверх, чтобы он был обрезан сверху, а внизу было свободное место.   -  person trnc    schedule 07.09.2010


Ответы (3)


Просто выполните анимацию UIView в методе, который вы вызываете при нажатии кнопки:

[UIView beginAnimations:@"MoveView" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:0.5f];
self.BigView.frame = CGRectMake(newXPoistion, newYPosistion, samewidth, sameheight);
[UIView commitAnimations];  

Это оживит большое представление для новых координат, которые вы даете, и также должно перемещать все в этом представлении.

person octermircty    schedule 07.09.2010

Если вам нужен мгновенный ход (без анимации), вы можете сделать это так:

CGRect rect = someView.frame;
self.someView.frame = CGRectMake(0, 0, rect.size.width, rect.size.height);
person Danoli3    schedule 02.05.2013

Свифт 3

  let rect = someView.frame

  self.view1.frame = CGRect(x: view1.frame.midX, y: 400, width: rect.width, height: rect.height)

// Или

 rectHeigh = someView.frame.height
 rectWidth = someView.frame.width

 view1.frame = CGRect(x: view1.frame.midX, y: 400, width: rectWidth, height: rectHeigh)
person Suhaib    schedule 03.09.2017