Ho impostato uno UIScrollView
con cui voglio visualizzare 12 immagini (solo 8 adattate sullo schermo) disposte orizzontalmente. Nell'immagine seguente potete vedere il problema che sto avendo (che rende la mia vista di scorrimento non scorrere), i miei limiti e la UIScrollView
che ho aggiunto su storyboard:iOS: Autolayout che causa la mancata scorrimento di UIScrollView
ho chiamato il seguente metodo su -(void)viewDidLoad
, dove ho "Set up" il mio ScrollView (ITEMLIST è la mia proprietà vista di scorrimento e itemNames una matrice con i images'names):
- (void)setupHorizontalScrollView
{
self.itemList.delegate = self;
[self.itemList setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.itemList setBackgroundColor:[UIColor blackColor]];
[self.itemList setCanCancelContentTouches:NO];
self.itemList.indicatorStyle = UIScrollViewIndicatorStyleWhite;
self.itemList.clipsToBounds = NO;
self.itemList.scrollEnabled = YES;
self.itemList.pagingEnabled = NO;
NSInteger tot=0;
CGFloat cx = 0;
for (; ; tot++) {
if (tot==12) {
break;
}
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[self.itemNames objectAtIndex:tot]]];
CGRect rect = imageView.frame;
rect.size.height = 40;
rect.size.width = 40;
rect.origin.x = cx;
rect.origin.y = 0;
imageView.frame = rect;
[self.itemList addSubview:imageView];
cx += imageView.frame.size.width;
}
[self.itemList setContentSize:CGSizeMake(cx, [self.itemList bounds].size.height)];
}
ho aggiunto le [setTranslatesAutoresizingMaskIntoConstraints self.itemList: NO]; perché ho visto questo suggerimento su altri post, ma non funziona con o senza di esso. L'unico modo in cui funziona è se deseleziono l'uso di AutoLayout nello storyboard, ma ciò sposta lo UIImageView
che utilizzo come barra di navigazione nella parte inferiore dello schermo. Non so più cosa fare, ogni aiuto è apprezzato :)
Ho provato a rimuovere uno di loro, ma non so come farlo. Potresti dirmi? – dietbacon
Fare clic sull'icona dell'ingranaggio sul vincolo e rimuoverlo se lo consente oppure modificarlo in modo meno specifico (ad es. Variabile o auto, quindi non interessa). –
dopo questo punto, l'autolayout sarà sempre più importante per lo sviluppo dell'interfaccia utente iOS/Mac e la programmazione dell'interfaccia utente. l'embed-in-view mi ha davvero aiutato a far funzionare la visualizzazione a scorrimento mentre utilizzavo ancora tutti i vantaggi del rollload automatico. –