Sto provando a generare una vista nel codice. Ecco la gerarchia del mio punto di vista dell'oggettoUIScrollView con iOS Layout automatico Vincoli: dimensioni errate per subviews
- UIScrollView
- UIView
- UIButton
- UIView
Lo ScrollView dovrebbe essere la stessa dimensione della finestra. Il pulsante dovrebbe essere il più grande possibile. Sto utilizzando layout automatico iOS, quindi le stringhe vincolo per tutti i miei oggetti simile a questa
H:|[object]|
V:|[object]|
Ho anche impostato translatesAutoresizingMaskIntoConstraints
-NO
per ogni oggetto.
Il problema è che il pulsante ottiene solo la dimensione del pulsante predefinita. L'oggetto vista padre (UIView) ottiene solo le dimensioni di cui ha bisogno le sottoview.
rosso: UIScrollView/giallo: UIView
Come posso forzare quelle viste ad essere grande come lo ScrollView?
Quando uso un UIView anziché ° UIScrollView tutto funziona alla grande ...
Ecco po 'di codice:
- (void) viewDidLoad {
[super viewDidLoad];
// SCROLL VIEW
UIScrollView* scrollView = [UIScrollView new];
scrollView.backgroundColor=[UIColor redColor];
scrollView.translatesAutoresizingMaskIntoConstraints = NO;
//CONTAINER VIEW
UIView *containerView = [UIView new];
containerView.translatesAutoresizingMaskIntoConstraints = NO;
containerView.backgroundColor = [UIColor yellowColor];
[scrollView addSubview:containerView];
// CONSTRAINTS SCROLL VIEW - CONTAINER VIEW
[scrollView addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[containerView]|"
options:0 metrics:nil
views:@{@"containerView":containerView}]];
[scrollView addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[containerView]|"
options:0 metrics:nil
views:@{@"containerView":containerView}]];
// BUTTON
UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.translatesAutoresizingMaskIntoConstraints = NO;
[button setTitle:@"I'm way to small" forState:UIControlStateNormal];
[containerView addSubview:button];
// CONSTRAINTS CONTAINER VIEW - BUTTON
[containerView addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[button]|"
options:0 metrics:nil
views:@{@"button":button}]];
[containerView addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[button]|"
options:0 metrics:nil
views:@{@"button":button}]];
self.view = scrollView;
}
UPDATE: Io davvero non lo so, perché questo sta accadendo . Se si imposta la vista in IB, si collegano le prese e si installa la vista nel codice, la vista a scorrimento si comporta come una vista normale (che rimbalza verticalmente). La sua contentSize non è calcolata correttamente. Più here. Ma come farlo correttamente?
Questa è una soluzione piuttosto complicata solo per mostrare un pulsante a schermo intero. Spero di aver risposto alla domanda tecnica, ma non sono ancora chiaro perché lo stai facendo in questo modo. – Rob
Per favore, smetti di ringraziare per i post - le firme non appartengono a questo. Grazie! – Undo