Как добавить / сделать вид видимым под scrollView? - PullRequest
0 голосов
/ 17 марта 2011

Я частично через добавление scrollview, путем создания экземпляра класса, который подклассов uiscrollview (ниже называется ScrollViewManager) для переопределения touchesEnded. Проблема в том, что у моего класса теперь есть прокрутка и касание, я больше не вижу свой файл view / nib, даже если он реагирует на прикосновения и хорошо прокручивается.

Я хочу добавить перо MyClass в качестве подпредставления? или не знаю ... Кажется, что он там, но просто скрыт за этим scrollView.

Выдержка из «Myclass: UIViewController» содержит эти строки кода в viewDidLoad для получения действия прокрутки с сенсорным откликом.

Спасибо большое. Так много.

scrollView = [[ScrollViewManager alloc] initWithFrame:self.view.frame]; 
scrollView.contentSize = CGSizeMake(320, 600);
[scrollView setUserInteractionEnabled:TRUE];
[scrollView setScrollEnabled:TRUE];
self.view = scrollView;

//trying with this line to add my nib for this class on top of the scroll view
    //which doesn't work: 'Accessing unknown 'view' class method'
[scrollView addSubview:Myclass.view];
    [scrollView release];

Ответы [ 2 ]

1 голос
/ 17 марта 2011

self.view = scrollView Строка делает ваш вид указанным контроллерами представления прокрутки. т.е. self.view & scrollView теперь указывают на один и тот же объект

после этого, когда вы пытаетесь [scrollView addSubview: Myclass.view]; в действительности вы добавляете scrollView в свой scrollView и получаете доступ к свойству view scrollview.

Просто удалите строку self.view = scrollView и сделайте это

[self.view addSubView:scrollView];
[scrollView release];

Надеюсь, это сработает.

0 голосов
/ 17 марта 2011

по какой-то причине я не могу добавлять комментарии к вашему сообщению. Это не сработало. Apple говорит о добавлении подпредставления здесь : но не объясняет как. Их код ниже для добавления аспекта прокрутки, как я делал выше. Сейчас я пытаюсь добавить свой вид в качестве подпредставления:

 UIView *newView = [[NSBundle mainBundle] loadNibNamed:@"MyClassView" owner:self options: nil];
[scrollView addSubview:newView];

но это терпит крах и идет не куда. Не знаю, что делать сейчас. Код Apple здесь с оригинальными комментариями:

  (void)loadView {
    CGRect fullScreenRect=[[UIScreen mainScreen] applicationFrame];
    scrollView=[[UIScrollView alloc] initWithFrame:fullScreenRect];
    self.view=scrollView;
    scrollView.contentSize=CGSizeMake(320,758);
    scrollView.contentInset=UIEdgeInsetsMake(64.0,0.0,44.0,0.0);


// do any further configuration to the scroll view
// add a view, or views, as a subview of the scroll view.

// release scrollView as self.view retains it
self.view=scrollView;
[scrollView release];

}

...