По иерархии представлений требуется уточнение - PullRequest
0 голосов
/ 21 ноября 2011

В этом примере кода я пытаюсь создать следующую иерархию представлений

Окно -> Фоновое изображение -> Вид прокрутки -> Вид текста

Все, что я вижу, однако

Окно -> фоновое изображение

Что мне не хватает, пожалуйста?

-(void) viewWillAppear:(BOOL)animated {

    UIScrollView *scrollWindow = [[UIScrollView alloc] 
                 initWithFrame:CGRectMake(30, 30, 440, 212)];

    UITextView *scrollableText = [[UITextView alloc] init];

    [scrollableText setEditable:NO];
    [scrollableText setText:@"Why, hello there"];

    [scrollWindow addSubview:scrollableText];

    UIImage *backgroundImage = [[UIImage alloc] initWithCGImage:
             [UIImage imageNamed:@"about_bg.png"].CGImage];
    UIImageView *backgroundView = [[UIImageView alloc] 
             initWithImage:backgroundImage];

    [backgroundView addSubview:scrollWindow];

    [[self view] addSubview:backgroundView];

}

Ответы [ 2 ]

2 голосов
/ 21 ноября 2011

Эндрю прав в том, что он не делает вид прокрутки подпредставлением фона UIImageView вид. Но представление прокрутки является невидимым. Только его содержимое (scrollableText) будет отображаться. И вы не установили рамку scrollableText, поэтому она также фактически невидима. Инициал вот так:

[scrollableText setEditable:NO];
[scrollableText setText:@"Why, hello there"];
[scrollableText setFrame:CGRectMake(0, 0, 100, 100)];

И вы должны это увидеть.

0 голосов
/ 21 ноября 2011

Что вам нужно, так это иерархия:

Window
  background image view
  scroll view
    text view

Попробуйте добавить два подпредставления в ваше окно, а не вставлять их как подпредставления друг в друга .''-

   - (void) viewWillAppear:(BOOL)animated {

      UIScrollView *scrollWindow = [[UIScrollView alloc] initWithFrame:CGRectMake(30, 30, 440, 212)];

      UITextView *scrollableText = [[UITextView alloc] init];

      UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"about_bg.png"]];

      scrollableText.editable = NO;
      scrollableText.text = @"Why, hello there";

      [scrollWindow addSubview:scrollableText];

      [self.view addSubview:backgroundView];
      [self.view addSubview:scrollWindow];
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...