Dynamische Positionierung von iOS-Objekte in einem Storyboard

Ich habe eine harte Zeit, herauszufinden, wie dynamisch positionieren der Objekte in einer Detailansicht storyboard.

Für den Anfang, die app folgt einem traditionellen blog-format, in dem der MasterView ist ein UITableView (oder UICollectionView) mit mehreren posts.

Wenn der Benutzer tippt auf einer von Ihnen, ein übergang führt zur Detailansicht.

Alles lädt richtig, außer für die Positionierung der Elemente in der Detailansicht.

Dies ist, wie es aussieht:

Dynamische Positionierung von iOS-Objekte in einem Storyboard

Oben UIImageView hat eine Feste Höhe, so dass es keine überschneidungen mit der Post Text Label.

Jedoch Post Text Label variable Höhe, wie einige post-Texte sind länger als andere. Diese wird betreut von einer Kategorie, die ich verwende, die sich dynamisch ändert, es (resizeToFit). Dies funktioniert alles Super.

Das problem jetzt ist, dass die Post Text Label wächst vertikal, brauche ich die View - Byline (grünes Rechteck) sich nach unten zu bewegen, basierend auf Post Text Label's vertikale Größe. Und ich kann einfach nicht nach unten bewegen.

Können Sie sehen, dass ich platziert alle View - Byline von Objekten in einer Ansicht, so dass Sie zusammen verschoben werden, indem Sie auf nur die View - Byline programmatisch position zu verändern.

Kennen Sie eine Methode, die ich verwenden können, um dies zu erreichen? Alle Hinweise, tutorials oder Weisheit sind wir sehr dankbar.

DetailViewController.h

#import <UIKit/UIKit.h>

@interface DetailViewController : UIViewController {
    IBOutlet UIImageView  *postThumbView;
    IBOutlet UILabel      *postTextLabel;
    IBOutlet UIImageView  *postAuthorPictureView;
    IBOutlet UILabel      *postAuthorNameLabel;
    IBOutlet UILabel      *postTimestampLabel;
    IBOutlet UIScrollView *scroller;
    IBOutlet UIView       *postBylineView;
}

@property (strong, nonatomic) id detailItem;

@end

DetailViewController.m

...
[postThumbView setImageWithURL:[NSURL URLWithString:postThumbUrl] placeholderImage:[UIImage imageNamed:@"default"]];

[postAuthorPictureView setImageWithURL:[NSURL URLWithString:authorPicture] placeholderImage:[UIImage imageNamed:@"default"]];

postTextLabel.text  = postText;
postTextLabel.frame = CGRectMake(postTextLabel.frame.origin.x,
                                 postThumbView.frame.origin.y + postThumbView.frame.size.height,
                                 postTextLabel.frame.size.width,
                                 postTextLabel.frame.size.height);
[postTextLabel resizeToFit];

postAuthorNameLabel.text = postAuthorName;
postTimestampLabel.text  = postTimestamp;
  • Sind Sie mit iOS 6+ mit AutoLayout-oder iOS 4.3+ mit AutoResizing Masken? Ich Frage, weil iOS 6+ mit AutoLayout wird tun, was Sie benötigen, sehr einfach.
  • Ich bin mit ios6 - ich habe halten Sie die "use autolayout" - box überprüft, aber habe nicht bemerkt einen Unterschied machen in mein problem - wie soll ich diesen Ansatz?
InformationsquelleAutor pepe | 2012-10-14
Schreibe einen Kommentar