2016-07-10 27 views
0

Ich erstelle einen View-Controller nur im Code, NO .xib oder Storyboard. Ich habe viele andere Subviews zur Ansicht hinzugefügt, die in einem Verfahren (void) Loadview hinzugefügt werden, und deren Rahmen werden in der (id) init Verfahren initialisiert, wie untenUIImageview wird nicht angezeigt, nachdem es zu einer anderen Unteransicht hinzugefügt wurde. Dies ist UIScrollview

-(id)init{ 

    bottomClinkRect = CGRectMake(playersBoardRect.origin.x + (playersBoardWidth * 0.320), 
           playersBoardRect.origin.y + playersBoardHeight - playerBottomImageRect.size.height - (playersBoardHeight * 0.038), 
           playersBoardWidth * 0.680, 
           playersBoardHeight * 0.038); 
} 
- (void)loadView { 

    bottomClink = [[UIScrollView alloc]initWithFrame:bottomClinkRect]; 
    [bottomClink setScrollEnabled:YES]; 
    bottomClink.contentSize = CGSizeMake(bottomClink.frame.size.height,bottomClink.frame.size.height); 
    [contentView addSubview:bottomClink]; 
} 

I gezeigt leer Scroll erstellen und dann basierend auf Benutzeraktionen auf dem Bildschirm ich versuche, einen Imageview pro Zeit, um die Scrollview mit dem folgende Verfahren hinzufügen: sind

-(void)reloadCollections:(NSNotification *)notification 
{ 
    UIImage *latestPieceCaptured = [gameController capturedBlackPiecesImages].lastObject; 

    [whitePlayerCaptures addObject:latestPieceCaptured]; 

    NSInteger newNumberOfViews = whitePlayerCaptures.count; 

    CGFloat xOrigin = (newNumberOfViews - 1) * bottomClink.frame.size.height; 

    CGRect imageRect = CGRectMake(bottomClink.frame.origin.x + xOrigin, 
            bottomClink.frame.origin.y, 
            bottomClink.frame.size.height, //the width is taken from the height 
            bottomClink.frame.size.height); // the height 

    UIImageView *image = [[UIImageView alloc] initWithFrame:imageRect]; 
    image.backgroundColor = [UIColor blackColor]; 
    image.image = latestPieceCaptured; 
    image.contentMode = UIViewContentModeScaleAspectFit; 

    //set the scroll view content size 
    bottomClink.contentSize = CGSizeMake(bottomClink.frame.size.height * newNumberOfViews, 
             bottomClink.frame.size.height); 

    [bottomClink addSubview:image]; 
} 

Mein Problem ist, dass die scrollview an die Haupt view aber die imageview (n) gegeben ist nicht zeigt oben.

Ich habe es debugged und die scrollview hat die Unteransichten hinzugefügt und sie haben Rahmengröße und alle, aber nicht auf dem Bildschirm angezeigt. Ich habe so viele Variationen ausprobiert, aber bisher hat noch nichts funktioniert.

Vielen Dank im Voraus für Links oder Ratschläge.

Antwort

1

Das funktioniert für mich:

- (void)addImagesToScrollView { 

    [self.scrollViewOutlet setAlwaysBounceVertical:NO]; 

    _scrollViewOutlet.delegate = self; 

    for (int i = 0; i < thumbnailPreview.count; i++) { 
     CGFloat xOrigin = i * self.scrollViewOutlet.frame.size.width; 
     UIImageView *image = [[UIImageView alloc] initWithFrame: 
           CGRectMake(xOrigin, 0, 
             self.scrollViewOutlet.frame.size.width, 
             self.scrollViewOutlet.frame.size.height)]; 
     image.image = [UIImage imageNamed: [thumbnailPreview objectAtIndex:i]]; 

      image.contentMode = UIViewContentModeScaleAspectFill; 


     image.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin; 


     image.clipsToBounds = YES; 

     [self.scrollViewOutlet addSubview:image]; 
    } 
    //set the scroll view content size 
    self.scrollViewOutlet.contentSize = CGSizeMake(self.scrollViewOutlet.frame.size.width * 
                thumbnailPreview.count, 
                self.scrollViewOutlet.frame.size.height); 

} 

Und es nennen in

- (void)viewDidAppear:(BOOL)animated 
+0

es nicht für mich arbeiten! Ich habe versucht, Ihren Code, aber nichts erscheint in der tatsächlichen scrollview es tut mir nicht einmal einen Fehler, wie die Bildansichten zum scrollview hinzugefügt werden, sind aber nicht sichtbar – stan

+0

auch ich versuche Bilder dort auf Nachfrage und nicht, wenn viewloads oder eine Startposition hinzuzufügen Deshalb habe ich Beobachter für diese Methode hinzugefügt, die aufgerufen werden soll, wenn bestimmte Bedingungen erfüllt sind. – stan

+0

Überprüfen Sie, ob Sie Bilder in Assets.xcassets oder Bundles hinzufügen. –