2010-07-15 12 views
1

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

@implementation JCEKScrollViewController_iPhone 
@synthesize scrollView; 
- (void)viewDidLoad { 
    scrollView.backgroundColor = [UIColor redColor]; 
    scrollView.delegate = self; 

    NSArray *nibParts = [[NSBundle mainBundle] loadNibNamed:@"JCEKKeyboard" 
                owner:self 
               options:nil]; 
//first object is the view 
    UIView *keyboard = [nibParts objectAtIndex:0]; 


    scrollView.contentSize = CGSizeMake(1000, 320); 
    [scrollView setAutoresizesSubviews:YES]; 
    [scrollView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight]; 

    [keyboard setAutoresizesSubviews:YES]; 
    [keyboard setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight]; 


    [scrollView addSubview:keyboard]; 


} 

Благодаря

ответ

0

«Это для iPhone, нет просмотров документа не существует», - так что вы не» t есть что показать? Зачем прокручивать пустой прямоугольник? Apple говорит: «После инициализации экземпляра NSScrollView вы должны, как минимум, установить представление документа с помощью метода setDocumentView: ...». Они используют (Листинг 1) [scrollView setDocumentView: theImageView]; и theImageView есть NSImageView. Нет ничего похожего на NSDocumentView. Позвольте мне предположить: вы не используете «настоящий» MVC-шаблон. То, что вы делаете, это наличие объекта VC и модели или всего лишь одного объекта для всего. Правильно? Если это так: вы пропустите, чтобы узнать «чистое искусство». Нет, вы не должны разделить эти три части все время. Можно совместить две или даже все три части шаблона MVC. Но перед этим вы должны сделать эти маленькие шаги! Узнайте, как это должно работать. Здесь вы узнаете ... • модель ist только для того, чтобы иметь все данные для одного задания вместе. Это немного (но совсем не так), как какой-то файл документа (и это не .doc), просто без файла. • вид - это только один (!) Способ (возможно, только у вас есть, но может быть столько, сколько вам нужно или нужно) для отображения некоторых или всех данных, вы хотите показать • контроллер управляет ими: он извлекает данные из модели (моделей) и возвращает их; он хранит представление (ы) и сообщает им, что делать - и, возможно, получает данные от них (некоторые из них должны быть перенесены на модель или некоторые из них для других целей - это логично или «||», а не xor , люди используют в естественной речи!)

Извините за мой плохой английский. Я написал это, чтобы сделать вас любопытным. Просто выполните «RTFM» или, в этом случае, прочитайте соответствующие части документации разработчика. Например, http://developer.apple.com/iphone/library/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html может быть местом для начала!

Привет

+1

Конечно, у меня есть вещи для отображения! На iPhone метод setDocumentView не определен, так как это UIScrollView, а не NSScrollView. – joec

0

уверен, что это нормально ли вы?

scrollView.contentSize = CGSizeMake(1000, 320); 
[scrollView setAutoresizesSubviews:YES]; 
    [scrollView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight]; 

Обычно я устанавливаю contentSize в соответствии с представлениями, которые я добавляю.

+0

я изменил его на 'scrollView.contentSize = CGSizeMake ([клавиатура границы], [.size.width клавиатура оценки] .size.height);' но ничего не изменило. Любые другие идеи? – joec

0

Я думаю, что вы хотите сделать sth. например [scrollView setDocumentView: yourContentViewToBeScrolled]; ScrollView - это просто взгляд, как и все остальные. Он EXTENS от А до Б, autosizes или нет ... и действительно получил abilty управлять видом документа: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/NSScrollViewGuide/Articles/Creating.html#//apple_ref/doc/uid/TP40003226-SW1

Привет

+1

Это для iPhone, никаких документов не существует ... извините ... любые другие идеи? – joec

0

Извините, но Вы написали «контроллер вида, который содержит только вид прокрутки» - и у меня не было глаз на тегах. Установлен ли scrollEnabled (значение по умолчанию) ДА? И: «В режиме прокрутки нет рисунка, за исключением отображения вертикальных и горизонтальных индикаторов прокрутки. Вид прокрутки должен знать размер представления содержимого, чтобы он знал, когда прекратить прокрутку; по умолчанию «отскакивает» назад, когда прокрутка превышает границы содержимого. Объект, который управляет отображением содержимого, отображаемого в прокрутке, должен ... »(http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html). - Ты рисуешь?

Возможно, вам стоит обратить внимание на приведенный здесь пример кода?

Привет

1
scrollView.contentSize = CGSizeMake(320, 1000); 

против

scrollView.contentSize = CGSizeMake(1000, 320); 
Смежные вопросы