ですから、私のものと同様の質問があることは知っていますが、正確ではないかもしれません (だから、私にマークを付けないでください - 警告してください)。この単純な問題の解決策を何日も探しました。ストーリーボード、ARC、および Xcode 4.5.2 を使用して、UIScrollView 内に一連のラベルを配置し、垂直方向にスクロールさせるだけです。viewDidLoad、viewDidAppear、viewWillAppear 内でフレーム サイズとコンテンツ サイズを設定する組み合わせを数多く試しましたが、うまくいきませんでした。内部に何もない場合、スクロール ビューは完全にスクロールしますが、ラベルを追加すると、スクロールは非常に短いセクションしかスクロールしません。
注:自動レイアウトを使用する必要があります。そうしないと、プロジェクト全体が台無しになります。
これが私の現在のコードです...
.h ファイル:
#import <UIKit/UIKit.h>
@interface MortgageRatesViewController : UIViewController <UIScrollViewDelegate, UIScrollViewAccessibilityDelegate>
- (IBAction)backButton:(id)sender;
@property (strong, nonatomic) IBOutlet UIView *mortgageView;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@end
.m ファイル:
#import "MortgageRatesViewController.h"
@interface MortgageRatesViewController ()
@end
@implementation MortgageRatesViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
//-------------------------------------------------------
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"appBackgroundColor.png"]];
[self.scrollView setScrollEnabled:YES];
[self.scrollView setContentSize:CGSizeMake(0, 809)];
}
//---------------------------------------------------------------
//---------------------------------------------------------------
//-(void)viewWillAppear:(BOOL)animated{
//
//
// [super viewWillAppear:animated];
//
//
// [self.scrollView setFrame:CGRectMake(0, 0, 320, 808)];
//
//
//}
//---------------------------------------------------------------
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.view addSubview:self.scrollView];
[self.scrollView setScrollEnabled:YES];
[self.scrollView setContentSize:CGSizeMake(0, 809)];
}
//-------------------------------------------------------------
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)backButton:(id)sender {
[self dismissViewControllerAnimated:YES completion:NO];
}
@end
注: viewWillAppear をコメントアウトしても違いはありません。
編集:以下のソリューションを投稿しました。それが他の人に役立つことを願っています!