優しい友達。
iOS 5.10 以降を対象とする電子書籍用のユニバーサル ページ ベースのアプリケーションを作成しています。そして、私はそれにいくつかの問題を抱えています。
私が書いた
_pageData = [NSArray arrayWithObjects:
[UIImage imageNamed:@"kkkn_0003.png"],
[UIImage imageNamed:@"kkkn_0004.png"],
[UIImage imageNamed:@"kkkn_0005.png"],
[UIImage imageNamed:@"kkkn_0006.png"],
[UIImage imageNamed:@"kkkn_0007.png"],
[UIImage imageNamed:@"kkkn_0008.png"],
[UIImage imageNamed:@"kkkn_0009.png"],
[UIImage imageNamed:@"kkkn_0010.png"],
[UIImage imageNamed:@"kkkn_0011.png"],
[UIImage imageNamed:@"kkkn_0012.png"],
nil];
ModelController.m で。すべての画像は同じサイズで、102410 x 1536 です。
私は Storyboard を使用します。最初に UIScrollView を UIView に配置し、DataViewController.h に接続して scroll という名前を付け、次に UIImageView も DataViewController.h に接続して imgv という名前を付けました。
DataViewController.m では、以下のように合成しました。
@synthesize dataObject = _dataObject;
@synthesize imgv = _imgv;
@synthesize scroll = _scroll;
しかし、いくつかの問題があります。ということで、viewWillAppear関数に以下のコードを書きました。
NSLog( @"ImageView bounds %f, %f, %f, %f", _imgv.bounds.origin.x, _imgv.bounds.origin.y, _imgv.bounds.size.width, _imgv.bounds.size.height);
NSLog( @"ImageView Frame %f, %f, %f, %f", _imgv.frame.origin.x, _imgv.frame.origin.y, _imgv.frame.size.width, _imgv.frame.size.height);
まず、iOS 5.1 を実行している iPhone4S では、ImageView 境界 0.000000、0.000000、320.000000、480.000000 ImageView フレーム 0.000000、34.000000、320.000000、480.000000 が表示され、適切に動作します。
しかし、iOS 6.0.2 を実行している iPhone 5 では同じ値が表示されるので、上下に 2 つの余白を薄い黄色で表示しています。これが最初の問題です。
次に、iOS 5.1 を実行している iPad2 では、
ImageView bounds 0.000000, 0.000000, 688.000000, 944.000000
ImageView Frame 0.000000, 0.000000, 688.000000, 944.000000
これは、UIImageView が全画面表示ではなく、画面上にその境界線が表示されることを意味します。また、UIImageView は中央に揃えられません。
iOS 6.0.2 を実行している iPad 第 4 世代で実行すると、次のように表示されます。
ImageView bounds 0.000000, 0.000000, 768.000000, 1024.000000
ImageView Frame 0.000000, 0.000000, 768.000000, 1024.000000
最初のページですが、次のページでは、
ImageView bounds 0.000000, 0.000000, 688.000000, 944.000000
ImageView Frame 0.000000, 0.000000, 688.000000, 944.000000
私は何もしませんでしたが、最初のページと他のページで UIImageView のサイズが異なります。また、UIImageView は全画面表示モードではないため、境界線が再び表示されます。
何か良い解決策はありませんか?
ご協力いただきありがとうございます。マサル