Un UIViewController
ha una proprietà view
. Quindi, è possibile aggiungere un UIScrollView
al suo view
. In altre parole, è possibile aggiungere la vista di scorrimento alla gerarchia della vista.
Questo può essere ottenuto tramite codice o tramite XIB. Inoltre, è possibile registrare il controller di visualizzazione come delegato per la visualizzazione di scorrimento. In questo modo, è possibile implementare metodi per l'esecuzione di diverse funzionalità. Vedi protocollo UIScrollViewDelegate
.
// create the scroll view, for example in viewDidLoad method
// and add it as a subview for the controller view
[self.view addSubview:yourScrollView];
Si potrebbe anche ignorare loadView
metodo per UIViewController
classe e di impostare la visualizzazione di scorrimento come la visualizzazione principale per il controller che si stanno prendendo in considerazione.
Modifica
ho creato un piccolo campione per voi. Qui, hai una vista di scorrimento come un bambino della vista di un UIViewController
. La vista di scorrimento ha due viste come bambini: view1
(colore blu) e view2
(colore verde).
Qui, suppongo che è possibile scorrere in una sola direzione: orizzontale o verticale. Di seguito, se si scorre orizzontalmente, è possibile vedere che la vista di scorrimento funziona come previsto.
- (void)viewDidLoad
{
[super viewDidLoad];
UIScrollView* scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
scrollView.backgroundColor = [UIColor redColor];
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;
scrollView.showsVerticalScrollIndicator = YES;
scrollView.showsHorizontalScrollIndicator = YES;
scrollView.contentSize = CGSizeMake(self.view.bounds.size.width * 2, self.view.bounds.size.height);
[self.view addSubview:scrollView];
float width = 50;
float height = 50;
float xPos = 10;
float yPos = 10;
UIView* view1 = [[UIView alloc] initWithFrame:CGRectMake(xPos, yPos, width, height)];
view1.backgroundColor = [UIColor blueColor];
[scrollView addSubview:view1];
UIView* view2 = [[UIView alloc] initWithFrame:CGRectMake(self.view.bounds.size.width + xPos, yPos, width, height)];
view2.backgroundColor = [UIColor greenColor];
[scrollView addSubview:view2];
}
Se è necessario scorrere solo verticalmente è possibile modificare nel modo seguente:
scrollView.contentSize = CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height * 2);
Ovviamente, è necessario riorganizzare la posizione delle view1
e view2
.
P.S. Qui sto usando ARC. Se non si utilizza ARC, è necessario esplicitamente release
oggetti alloc-init.
È possibile aggiungere UIScrollView alla vista di UIViewController ed è possibile visualizzare UIViewController su UIScrollView –
Prima di fare qualcosa del genere, vorrei vedere cosa è un controller e cosa è una vista. Sono cose molto diverse. – Mert
puoi aggiungere una scrollview a un controller di visualizzazione e visualizzare i controller in una scrollview, aggiungi la tua scrollview come sottodirectory alla tua attuale ViewController – Talha