2

詳細ビューに単純なスクロールを実装するのに苦労しています。

このアプリは、マスター ビューと詳細ビューを備えた簡単なものです。

ユーザーがマスターのアイテムをタップすると、詳細ビ​​ューがプッシュされ、大きな写真、ブログ テキストなどが表示されます。

詳細ビュー全体をスクロールしたいので、画像が高い場合やテキストが長い場合は、縦にスクロールして詳細を表示/読むことができます。ユーザーにこれらのアイテムを個別にスクロールさせたくありません。ウェブページのスクロールのように感じるはずです。

現在、私の詳細ビューは正常に読み込まれますが、スクロールできません。

私のDetailViewController.h

    #import <UIKit/UIKit.h>

    @interface DetailViewController : UIViewController {
        IBOutlet UILabel     *postTextLabel; // wired to Text Label
        IBOutlet UILabel     *postAuthorNameLabel; // wired to Author Label
    }

    @property (strong, nonatomic) id detailItem;
    @end

私のDetailViewController.m

#import "DetailViewController.h"

@interface DetailViewController ()
- (void)configureView;
@end

@implementation DetailViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self configureView];
}

- (void)configureView
{
    if (self.detailItem) {
        NSDictionary *post           = self.detailItem;
        NSString     *postText       = [post objectForKey:@"post_text"];
        NSString     *postAuthorName = [post objectForKey:@"post_author_name"];

        postTextLabel.text       = postText;
        postAuthorNameLabel.text = postAuthorName;
    }
}
@end

IB の構造:

ここに画像の説明を入力

これを機能させるために何が欠けているかについてのアイデアはありますか?

4

1 に答える 1

2

私は次のことをします:

1) (オプション) ビューを横のスクロール リストのビューにドラッグして、ビューをスクロール ビューにします。

2)スクロールビューをviewcontroller .hにリンクし、アウトレット接続を次のようにします

@property (strong, nonatomic) IBOutlet UIScrollView *scroller;

(これを手動で追加する場合は、.m に @synthesize を必ず追加してください)、IB で接続されていることを確認してください!

3) viewDidLoad メソッドでスクロールビューの contentsize を設定する

scroller.contentSize =  CGSizeMake(320,550);

注: IBOutlet UILabel *postTextLabel; 実際にはおそらく UITextView である必要があるため、次のことが可能になる ContentSize にアクセスできます。

CGRect frame = postTextLabel.frame;
frame.size = postTextLabel.contentSize;
postTextLabel.frame = frame;
scroller.contentSize = CGSizeMake(320, frame.size.height+200);//200 or how ever much space is above the textView

繰り返しますが、これは UITextView を使用する場合にのみ機能します

iPad の場合、320 を 768 または 1024、または方向に応じてどちらかで置き換えます

IB で接続する最良の方法は、このようにコントロールを押したまま .h ファイルにドラッグし、図のように自動に設定されていることを確認し、ビューの .h をポイントすることです。このように追加すると、 @synthesize も自動的に追加されます。

ここに画像の説明を入力

ここに画像の説明を入力

スクロールビューの UserInteractionsEnabled がここでチェックされていることを確認してください

于 2012-09-30T18:38:07.837 に答える