Ho una vista di scorrimento nella mia app, inizializzata tramite lo storyboard, e sto tentando di cambiare la cornice. Tutto sembra funzionare, ma se si accede al frame e alla dimensione del contenuto poco tempo dopo che sono stati impostati, ma dopo che il mio metodo è tornato, sono diversi! Ecco il codice:UIScrollView che cambia misteriosamente la dimensione del fotogramma e del contenuto
CGFloat inputHeight = inputView.frame.size.height;
originalContentHeight = self.scrollableContentView.frame.size.height;
NSLog(@"%f", self.scrollableContentView.frame.size.height-inputHeight);
[self.scrollableContentView setFrame:CGRectMake(self.scrollableContentView.frame.origin.x, self.scrollableContentView.frame.origin.y, self.scrollableContentView.frame.size.width, self.scrollableContentView.frame.size.height-inputHeight)];
NSLog(@"%f", self.scrollableContentView.frame.size.height);
NSLog(@"%@", self.scrollableContentView);
L'output di questi registri sono tutti come previsto, cioè:
<UIScrollView: 0x808de00; frame = (0 0; 320 81); ... >
Tuttavia, se ho impostato un punto di interruzione in un altro metodo, dal momento che si chiama, registrazione ScrollView mostra questo:
<UIScrollView: 0x808de00; frame = (0 0; 320 416); ... >
Inoltre, le dimensioni del contenuto come tale:
(width=320, height=416)
a
(width=320, height=504)
Entrambi i valori sembrano essere ritorna automaticamente ai valori che hanno quando la vista viene prima disposto. Ho impostato i breakpoint nel getter e setter della mia vista scroll e non riesco a trovare accessi inaspettati, quindi ho concluso che il cambiamento deve avvenire internamente. Questa è una conclusione giustificabile? Cosa potrebbe andare storto?
Potresti avere le molle autoresizing regolate in altezza regolabile? – Jamie
Dove lo troverei? – Jumhyn
Ciò è dovuto al layout automatico. Spegnilo o modifica le dimensioni della vista di scorrimento regolando i vincoli piuttosto che impostando i fotogrammi. – rdelmar