Как сделать положение кнопок по отношению друг к другу?

Я пытаюсь сделать FAQ, поэтому, когда вы нажимаете на кнопку, он заменяет текст вопросом и ответом. Я использую этот код для замены текста:

ViewContoller.m

@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIButton *buttonTest;
- (IBAction)ButtonTest:(id)sender;

@end

ViewController.h

- (IBAction)ButtonTest:(id)sender
{
    if ([_buttonTest.titleLabel.text isEqualToString:@"This is the Question No1?"])
    {
        [sender setTitle:@"This is the Question No1? This is question No1 answer that enter code herehas a fair bit of content" forState:UIControlStateNormal];
    }
    else
    {
        [sender setTitle:@"What age is This is the Question No1?" forState:UIControlStateNormal];
    }
}

При нажатии кнопки все работает нормально, но текст отображается поверх второго вопроса.

Кто-нибудь знает, как сделать это движение вниз, чтобы разместить ответ, но затем вернуться, когда по нему снова щелкнут?

Спасибо


person user3255316    schedule 20.02.2014    source источник


Ответы (3)


Вы должны управлять этим вручную, сдвигая рамку всех вопросов вниз от кликабельного вопроса, и вы должны увеличить высоту этой кликабельной кнопки в соответствии с текстом, который вы им назначаете.

Опять же, когда вы нажимаете эту кнопку с ответом, уменьшите высоту и сдвиньте нижнюю рамку вопросов вверх.

Используйте прокрутку для добавления кнопок и увеличения и уменьшения размера содержимого, а также при нажатии кнопки.

person rahul    schedule 20.02.2014

  1. Настройте каждый из ваших вопросов с помощью AutoLayout, чтобы ограничение верхнего пространства каждого из них было связано с предыдущей нижней строкой (кроме первого, конечно, фактическое значение может быть любым, которое вы хотите):

    введите здесь описание изображения

  2. Программно отрегулируйте высоту вашего вопроса при нажатии кнопки.
    Необязательно: если вам нужно измерить требуемую высоту вопроса + ответа, этот вопрос может помочь. По сути, вам нужно использовать NSString+Geometrics Category следующим образом:

    NSDictionary *attributes
      = [NSDictionary dictionaryWithObjectsAndKeys:
         [questionField font],NSFontAttributeName,nil];
    NSAttributedString *attributedString
      = [[NSAttributedString alloc] initWithString:
         [questionField title] attributes:attributes];
    // Here below the height of the string
    CGFloat height = [attributedString heightForWidth:
                     [questionField frame].size.width];
    
person insys    schedule 20.02.2014

Если я правильно понимаю ваш сценарий, вы хотите удалить кнопку и показать свой текст в том же месте, где была ваша кнопка.

Я думаю, вы можете поместить свои UILabel и UIButton в одно и то же место и скрыть свою метку. И когда кнопка нажата, отобразите свою метку и скройте кнопку, это было бы лучше, чем изменение текста вашей кнопки.

person user3323288    schedule 20.02.2014
comment
В основном я свой список вопросов для отображения следующим образом: Вопросы 1? Вопрос 2? Вопрос3? Вопрос4? Затем при нажатии отображается ответ между вопросами: Вопросы 1? Это ответ на вопрос 1 с различными строками текста в зависимости от ответа! Вопрос 2? Вопрос3? Вопрос4? Затем, когда вы снова нажмете кнопку, он вернется к исходному списку! Спасибо - person user3255316; 20.02.2014
comment
извините, список вопросов должен был отображаться подряд! - person user3255316; 20.02.2014