Ich habe ein customView (UIView) erstellt, das ein UIScrollView als Unteransicht enthält, und Objekte, die ich auf die scrollView legte, wurden nicht angezeigt. Um es zu testen, habe ich der scrollView eine UIView hinzugefügt, die auch nicht angezeigt wurde (siehe Codebeispiel unten). Da der Inhalt, den ich in der scrollView einfügen möchte, dynamisch ist, möchte ich das Problem mit AutoLayout angehen. Ich probierte verschiedene Methoden aus und befolgte die Anweisungen online, nichts davon funktionierte, alle ähnlichen Fragen waren UIScrollView, das in einem UIViewController erstellt wurde.UIScrollView als Unteransicht von UIView funktioniert nicht mit automatischem Layout
Hier ist mein Code, ich bin mit Mauerwerk:
@interface CustomView : UIView
@end
@implementation CustomView
- (instancetype)init {
if (self = [super init]) {
self.scrollView = [[UIScrollView alloc]init];
self.scrollView.backgroundColor = [UIColor redColor];
[self addSubview:self.scrollView];
[self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
//Here I add someView to the scrollView, and when I create an instance of the scrollView, the someView does not show.
self.someView = [[UIView alloc]init];
self.someView.backgroundColor = [UIColor blackColor];
[self.scrollView addSubview:self.someView];
[self.someView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.scrollView);
make.size.equalTo(CGSizeMake(40, 40));
}];
}
return self;
}
Hier ist, wie ich eine Instanz der Custom
CustomView *customView = [[CustomView alloc]init];
[self.view addSubview: customView];
[customView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(64.0);
make.height.equalTo(40.0);
make.leading.trailing.equalTo(0);
}];
Gibt es etwas, was ich verpasst oder falsch gemacht haben erstellen, die someView verursacht nicht zeigen?
Vielen Dank für Ihre Hilfe.
Wird Ihre Bildschirmansicht wie erwartet angezeigt? Bitte überprüfen Sie, ob Sie den richtigen Frame erhalten, wenn Sie Constraint für scrollview und someview setzen. Gibt es auch einen Fehler bei der automatischen Anzeige in der Konsole? – HardikDG
Vielen Dank @pyro für die Erinnerung an einen Haltepunkt und überprüfen Sie meine Bildlaufansicht, ich müde und die Ansicht wurde richtig erstellt. Ein Mitarbeiter hat mir geholfen, diesen Fehler zu beheben, indem ich die überflüssige Schicht von UIView entfernt habe und AutoLayout korrekt verwendete. – CeliaLi