2014-01-31 7 views
1

У меня есть один UIViewController, так как у меня есть еще UIView. То, что я хочу сделать, - это нажать кнопку, чтобы UIView должен был прокручивать основной UIViewController.Как будет отображаться еще один UIView при нажатии кнопки

Я попытался:

[self.view setFrame: CGRectMake(-280.0f, 0.0f, 320.0f, 568.0f)]; 
[self.view addSubview:view_secondScreen]; 

Он перемещает весь UIViewController вдоль зрения к югу. Может ли кто-нибудь объяснить мне, как сделать второй вид? Я был бы очень благодарен.

ответ

0

Что вы хотите сделать, как стандартный метод pushViewController для UINavigationController.

То, что вы хотите сделать, это

[self pushViewController:viewControllerSecondScreen animated:YES]; 

Но для того, чтобы работать, вы должны иметь свое второе UIView завернутыми в UIViewController

0

Используйте эту простую анимацию левой анимации слайдов.

-(void)addLeftSlideAnimationForButton:(UIView*)yourView 
{  
    CABasicAnimation *moveAnimation = [CABasicAnimation animationWithKeyPath:@"position"]; 
    moveAnimation.duration = 0.02; 
    moveAnimation.repeatCount=0; 
    moveAnimation.autoreverses=NO; 
    moveAnimation.fromValue= [NSValue valueWithCGPoint:CGPointMake(0.0, 0.0)]; 
    moveAnimation.toValue=[NSValue valueWithCGPoint:CGPointMake(-280.0f, 0.0)]; 
    [yourView.layer addAnimation:moveAnimation forKey:@"animatePosition"]; 
} 

и удалите анимацию, позвонив по этому методу.

-(void)removeLeftSlideAnimationForButton:(UIView*)yourView 
{ 
    [yourView.layer removeAnimationForKey:@"animatePosition"]; 
} 

Вызов выше метод, с помощью ..

//[self.view setFrame: CGRectMake(-280.0f, 0.0f, 320.0f, 568.0f)]; // comment this line 
[self.view addSubview:view_secondScreen]; 
[self addLeftSlideAnimationForButton:view_secondScreen] 
+0

Он не перемещает основной UIViewController вправо. Я хочу, чтобы он соскользнул вправо, когда должен появиться UIView. – Sami

+0

Нет Нет. Не будет отображаться основной вид, он просто сдвинет подзаголовок, который вы добавили к основному виду. – Mani

+0

, так как я могу скользить по главному виду? – Sami

0

Есть несколько возможных способов сделать, если вы хотите, чтобы показать различные компоненты пользовательского интерфейса в двух различных UIView в том же UIViewController.

  1. вы можете использовать UISegmentedControl
  2. Как вы реализовали, имеющих различные UIButton и показа/удаления UIView с UIViewController.

Вы должны иметь 2 разных файла XIB для двух различных UIViews и на выборе кнопки добавить, что особое UIView как подвид из UIViewController и удалить ранее UIView из надтаблицы.

Я предпочитаю делать это с помощью UISegmentedControl.

Надеюсь, это поможет.

+0

Можете ли вы посоветовать, как я могу использовать UISegmentedControl ?? – Sami

+0

В файле заголовка объявить @property (неатомный, слабый) IBOutlet UISegmentedControl * segmentControl; В .m файл можно реализовать метод - (IBAction) indexDidChangeForSegmentedControl: (UISegmentedControl *) отправитель Вы можете проверить ссылку https://developer.apple.com/library/ios/documentation/uikit/reference /UISegmentedControl_Class/Reference/UISegmentedControl.html от Apple для получения дополнительной информации. – user2071152

0

В принципе, есть два способа, с помощью которых вы можете добавить представление на родительский вид. 1- Вы можете добавить в качестве подзадачи, как вы уже делаете, если это так, тогда вам нужно будет анимировать второй вид, пока добавив его на ваш взгляд. 2 Это предпочтительнее, если вы хотите перейти к следующему действию, что означает, что вы можете добавить контроллер навигации в appdelegate, а в свойстве rootviewcontroller вы можете установить свое представление. Затем, пока вы хотите перейти ко второму виду, вы можете нажать второй вид на первый вид. Так скажите, какой вариант вы хотите в своем приложении?

+0

Я не хочу добавлять еще один ViewController, то, что я хочу, - это то, что основной вид должен смещаться вправо, а subView должен появляться, как это происходит в боковом меню. – Sami

+0

Хорошо, тогда вам нужно просто добавить точку в координатах x main view, а затем добавить второе представление в качестве подсмотра, и вам нужно просто применить простую анимацию во время этого процесса –

Смежные вопросы