2012-10-03 5 views
0

UIScrollView에서 완료된 UIButton 표시를 표시하고 싶습니다. 아래의 코드 UIButton이 표시되어 있지만 UIImageView 초를 스크롤하면 매우 첫 번째 이미지보기에만 표시됩니다. UIButton이 완료되면 모든 이미지보기에 UIScrollView을 표시해야합니다.UIButton 표시 UIScrollview에서 이미지보기

- (void)viewDidLoad 

{ 
self.view.backgroundColor = [UIColor blackColor]; 
UIScrollView *imageScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

[myButton addTarget:self action:@selector(dismissView:) forControlEvents:UIControlEventTouchUpInside]; 

myButton.frame = CGRectMake(0, 0, 60, 35); 

[myButton.layer setMasksToBounds:YES]; 

[myButton.layer setCornerRadius:10.0f]; 

myButton.layer.borderWidth = 2; 

myButton.layer.borderColor = [[UIColor whiteColor] CGColor]; 

[myButton setTitle:@"Done" forState:UIControlStateNormal]; 

myButton.backgroundColor = [UIColor blackColor]; 

UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithCustomView:myButton]; 

[[self navigationItem] setRightBarButtonItem:button animated:YES]; 
imageScrollView.pagingEnabled = YES; 
NSInteger numberOfViews = 61; 
for (int i = 0; i < numberOfViews; i++) { 
    CGFloat xOrigin = i * self.view.frame.size.width; 

    NSString *imageName = [NSString stringWithFormat:@"image%d.png", i]; 
    UIImage *image = [UIImage imageNamed:imageName]; 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
    imageView.frame = CGRectMake(xOrigin, 0, self.view.frame.size.width, self.view.frame.size.height); 
    [imageScrollView addSubview:imageView]; 
    [imageScrollView addSubview:myButton]; 
    [imageView release]; 
    } 
imageScrollView.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, self.view.frame.size.height); 
[self.view addSubview:imageScrollView]; 
[imageScrollView release]; 
} 

코드화해야 할 내용 UIButton 스크롤 할 때 모든 이미지보기가 완료되어야합니다.

+0

버튼 코드를 for 루프에 추가하여 각 행에 추가하십시오 ... – Ayaz

답변

1

ImageView가 추가 될 때마다 추가 할 수 있습니다 즉, 귀하의 UIButton에 대한 루프를 추가합니다. 그리고 그것의 x_OriginimageView에 대한 변경 -

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 

    UIScrollView *imageScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 

    imageScrollView.pagingEnabled = YES; 
    NSInteger numberOfViews = 61; 

    for (int i = 0; i < numberOfViews; i++) 
    { 
     CGFloat xOrigin = i * self.view.frame.size.width; 
     UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [myButton addTarget:self action:@selector(dismissView) forControlEvents:UIControlEventTouchUpInside]; 
     myButton.frame = CGRectMake(xOrigin, 0, 60, 35); 
     [myButton setTitle:@"Done" forState:UIControlStateNormal]; 
     myButton.backgroundColor = [UIColor blackColor]; 
     [myButton.layer setMasksToBounds:YES]; 

     [myButton.layer setCornerRadius:10.0f]; 
     myButton.layer.borderWidth = 2; 
     myButton.layer.borderColor = [[UIColor whiteColor] CGColor]; 

     NSString *imageName = [NSString stringWithFormat:@"image%d.png", i]; 
     UIImage *image = [UIImage imageNamed:imageName]; 
     UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
     imageView.frame = CGRectMake(xOrigin, 0, self.view.frame.size.width, self.view.frame.size.height); 
     [imageScrollView addSubview:imageView]; 
     [imageScrollView addSubview:myButton]; 
    } 

    imageScrollView.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, self.view.frame.size.height); 
    [self.view addSubview:imageScrollView]; 

} 

이 2 선

UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithCustomView:myButton]; 
[[self navigationItem] setRightBarButtonItem:button animated:YES]; 

이 작업을 수행 할 필요가 없습니다를 제거합니다. 즉 rightBarButton의 버튼을 NavigationBar으로 설정하고 있음을 의미합니다. 그렇다고해서 그렇게하고 싶지는 않습니다.

+0

여전히 첫 번째 이미지보기에 표시됩니다. – user1452248

+0

테스트 코드가 아닙니다 ..... 코드를 다시 확인하십시오. 덕분에 – TheTiger

+0

. 각 이미지보기에 대해 xOrigin을 변경 한 후 이제 UIButton Done이 모든 이미지보기에 표시됩니다. – user1452248

0

myButton의 for 루프를 이미지 뷰 프레임과 비슷하게 설정합니다.

myButton.frame= CGRectMake(xOrigin, 0, self.myButton.frame.size.width, self.myButton.frame.size.height); 
+0

NSInteger numberOfViews = 61; for (int i = 0; i user1452248