2015-10-30 1 views
0

Я наивна в iOS. Я разрабатываю страницу регистрации, которая состоит из скрытия текстовых полей на основе представлений. Для достижения этой цели я реализован UISegmentedControl для представлений и использовал следующий код для сокрытия текстового поля на основе сегментовскрытие и настройка текстовых полей на основе iOS

- (IBAction)regSegmentButton:(id)sender { 

if (_registrationSegment.selectedSegmentIndex ==1) { 
    self.vendorID.hidden = NO; 
} 
else { 
    self.vendorID.hidden = YES; 
} 

} 

Даже если я достиг того, что я предназначен, но представление абсурдно. Вид представлен ниже в изображениях customerscreen vendorscreen

Мой вопрос заключается в том, чтобы сделать вид выглядеть нормально, даже после того, как скрытие поля такой же, как, как она представлена ​​в «vendorscreen.png» (второе изображение). Нужно ли применять любую анимацию для ее достижения? если да, дайте, пожалуйста, мне знать, как сделать это

Пожалуйста сделайте необходимое ..

+0

Привет, @ashwin, как вы макет вашего взгляда? Вы используете автозапуск? –

+0

Относительный вопрос http://stackoverflow.com/questions/19561269/autolayout-with-hidden-uiviews –

+1

Возможно, вам будет проще спроектировать ваш контроллер представлений как UITableViewController. У вас может быть 3 ячейки прототипа («сегментированная ячейка управления», «ячейка текстового поля», «ячейка кнопки регистрации») и создавать и форматировать ее во время выполнения, реализуя метод «tableView: cellForRowAtIndexPath:» в UITableViewDataSource. А поскольку UITableView подклассы UIScrollView, вам не придется беспокоиться о том, как вручную управлять размером содержимого/вводом содержимого прокрутки. – n00neimp0rtant

ответ

1

Вы можете сделать это с/без анимации. Вот шаг без анимации. Вы должны добавить свой идентификатор электронной почты, пароль, подтвердить пароль и зарегистрировать кнопку в обычном UIView, например, например: view1, а затем, когда вы меняете переключатель, вы должны отрегулировать позицию «y» view1. Как ниже

- (IBAction)regSegmentButton:(id)sender { 

    if (_registrationSegment.selectedSegmentIndex ==1) { 
     self.vendorID.hidden = NO; 
    } 
    else { 
     self.vendorID.hidden = YES; 
    } 

    int y = (_registrationSegment.selectedSegmentIndex == 1) ? 200 : 150 
    CGRect rect = self.view1.frame; 
    rect.origin.y = y; 
    self.view1.frame = rect; 
} 

Я просто жёстко значение для понимания, Вам необходимо изменить значение y на основе вашего зрения.

+0

Он хочет оживить его –

+0

@GalMarom, Thanks. Отредактировано – Vijay

+0

@vijay спасибо за вашу анимацию ответа или без анимации в порядке со мной, но я вроде наивна в таком подходе, который вы объясняете, пожалуйста, перейдите по моей иерархии иерархии раскадровки [иерархия раскадровки] (http: // s11. postimg.org/ajruwronn/storyboardhierarchy.png), и дайте мне знать, как продолжить дальше – ashwin

0

Одно из решений: вы можете иметь UIView, который содержит весь нижний UITextField. Все, что вам нужно сделать, - это анимировать новый вид скрытой позиции.

[UIView animateWithDuration:0 animations:^(){ 
    textFieldContainers.frame = CGRectMake(textFieldContainers.frame.origin.x, textFieldContainers.frame.origin.y - vendorIDTextField.frame.size.height, textFieldContainers.frame.size.width, textFieldContainers.frame.size.height); 
}]; 

Другая заключается в работе с ограничениями (инкапсулировать «статический» вид в одном представлении контейнера будет полезным в этом решении, а)

+0

благодарит вас за ответ, пожалуйста, помогите мне в том, как реализовать такой подход, пройдя мою иерархию доски объявлений (http: //s11.postimg. org/ajruwronn/storyboardhierarchy.png), если возможно, будет заметен рабочий пример. – ashwin

+1

Создайте UIView и добавьте все поле между электронной почтой и регистрацией внутри него (просто перетащите их внутрь представления). Создайте выход в вашем классе UIViewController для этого представления. Если вы хотите анимировать этот вид, просто позвоните по коду, который я разместил. –

+0

Я реализовал его в соответствии с вашим предложением, но я получаю следующий результат в виде вывода (http://s14.postimg.org/6vwt6mv7l/endoutput.png), пожалуйста, просмотрите фрагмент кода (http://s4.postimg.org /kx6j3pmhp/codeforoutput.png) и дайте мне знать, где я буду ошибаться – ashwin