Приложение для iPhone - белая коробка, изменяющая размер динамически, в зависимости от содержимого - PullRequest
1 голос
/ 01 августа 2011

Я пытаюсь создать свое первое приложение для iPhone, путеводитель по Берлинскому музею, и у меня возникают небольшие затруднения, когда я пытаюсь понять, как создать конкретный вид. Раньше я делал макеты всех своих представлений в Photoshop, но теперь, на самом деле, сделать это в Xcode - это, конечно, другое: -)

Итак, вот что я хочу:

[Я собирался опубликовать изображение здесь, но, поскольку я новичок, у меня недостаточно репутации, чтобы размещать изображения.]

Найдите изображение здесь: http://img9.uploadhouse.com/fileuploads/13445/13445099d5adea77b02fe1d76755da6b81c92634.png

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

Первый вопрос: существует ли такая вещь, как «белая коробка с закругленными углами», в которую я могу поместить текст, изображения и т. Д., Или мне придется импортировать это как пользовательское изображение? В этом случае у меня возникнет проблема, если я захочу, чтобы прямоугольник изменил свой размер, так как при простом масштабировании изображения круглые углы искажаются. Я предполагаю подход в стиле CSS с верхним и нижним image и выполнение средней части со свойством repeat-y или чем-то подобным не будет работать в target-c, верно?

Второй вопрос: есть ли у кого-нибудь хороший совет о том, как подходить к расширению текста в целом? Я хочу, чтобы текст описания изначально был просто тизером, чтобы он не занимал весь экран. Если пользователь хочет продолжить чтение, при нажатии кнопки «еще» окно должно развернуться и отобразить весь текст. Так много для теории ... Я немного не понимаю, как это сделать, и я надеюсь, что кто-то мог бы получить хороший вклад в это.

Большое спасибо, что нашли время помочь новичку: -)

1 Ответ

2 голосов
/ 01 августа 2011

Я бы не стал использовать изображение b / g, поскольку будут проблемы с вертикальным расширением, как вы сами отметили. Я бы предпочел использовать обычный UIView и следующий метод, чтобы скруглить углы.

#import <QuartzCore/QuartzCore.h>

view.layer.cornerRadius = 5; 

Что касается расширения текста. Я бы не стал делать обтекание текста текстом, так как это сложно. Для автоматической настройки UITextView вы можете сделать следующее.

  • уменьшить размер кадра UITextView.
  • создайте кнопку «more», которая изменит кадр UITextView и анимирует его

пример:

#define MOVE_ANIMATION_DURATION_SECONDS 0.5

-(void)maximize:(BOOL)animated{
    if(animated){
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationDuration:MOVE_ANIMATION_DURATION_SECONDS];
        [UIView setAnimationDelegate:self];

        [self setMaximizedViewState];

        [UIView commitAnimations];
    }else
        [self setMaximizedViewState];

}

-(void)minimize:(BOOL)animated{
    if(animated){
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationDuration:MOVE_ANIMATION_DURATION_SECONDS];
        [UIView setAnimationDelegate:self];

        [self setMinimizedViewState];

        [UIView commitAnimations];
    }else
        [self setMinimizedViewState];

}

-(void)setMinimizedViewState{
    isMinimized = YES;

    //Adjust the UITextView's frame and other properties
}

-(void)setMaximizedViewState{
    isMinimized = NO;

    //Adjust the UITextView's frame and other properties
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...