ユーザー インタラクティブ ビューの配列を既存のコードに追加しようとしています。スクロールビュー (ページ コントロール付き) を使用して一連の画像を表示する配列を含む次のコードがあります。インターフェイス ビルダーで作成された一連のユーザー インタラクティブ ビューを表示するようにコードを変更したいと考えています。ユーザーの操作により、これらのビューにはボタンとズーム可能な画像ビューが表示されます。
-----現在のコード-----
scrollview付きView Controllerの実装ファイル(.m)
#import "AboutViewController.h"
@interface AboutViewController ()
@end
@implementation AboutViewController
@synthesize scrollView;
@synthesize pageControl;
@synthesize imageArray;
int page;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
//Can we load and display ViewControllers as opposed to images?
imageArray = [[NSArray alloc] initWithObjects:@"1.png", @"2.png", @"3.png", nil];
for (int i = 0; i < [imageArray count]; i++ ) {
int page = scrollView.contentOffset.x / scrollView.frame.size.width;
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame];
imageView.image = [UIImage imageNamed:[imageArray objectAtIndex:i]];
[self.scrollView addSubview:imageView];
NSLog (@"page %d",page);
}
scrollView.contentSize = CGSizeMake(scrollView.frame.size.
width *[imageArray count],
scrollView.frame.size.height);
}
#pragma mark - UIScrollView Delegate
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
CGFloat pageWidth = self.scrollView.frame.size.width;
//calculate current page in scrollview
int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
self.pageControl.currentPage = page;
NSLog (@"page %d",page);
}
- (IBAction)done:(id)sender
{
[self.delegate aboutViewControllerDidFinish:self];
}
@end
scrollview付きView Controllerのヘッダファイル(.h)
#import <UIKit/UIKit.h>
@class AboutViewController;
@protocol AboutViewControllerDelegate
- (void)aboutViewControllerDidFinish:(AboutViewController *)controller;
@end
@interface AboutViewController : UIViewController<UIScrollViewDelegate>
@property (strong, nonatomic,retain) id <AboutViewControllerDelegate> delegate;
@property (nonatomic,strong,) IBOutlet UIScrollView *scrollView;
@property (nonatomic, strong) IBOutlet UIPageControl *pageControl;
@property (nonatomic, strong) NSArray *imageArray;
@property(nonatomic, assign) IBOutlet UILabel *label;
- (IBAction)done:(id)sender; //returns back to main menu after a button is pressed
@end
- - - - - - - - - - - - - -アップデート - - - - - - - - - - - ------------
さらなる解明:
この質問に参加している可能性がある人のために、以前、ビューではなくスクロールビューにビューコントローラーを埋め込むことに混乱していました。ビューコントローラーをスクロールビューに埋め込むことはできませんが、ビューを埋め込むことは可能だと思います。