0

imageview内にuibuttonを追加しようとしています。

しかし、ボタンは表示されませんでした。

私もそれをuiscrollviewとself.viewに追加してみました。

しかし、uibuttonは何も表示されませんでした

plsは私に何が問題なのか教えてくれます

const CGFloat HEIGHT = 1024.0;
    const CGFloat WIDTH = 768.0;
    #define myViewPortrait CGRectMake(0.0f, 0.0f, 768.0f,1024.0f)
    #define myViewLandSacpe CGRectMake(0.0f, 0.0f, 1024.0f,768.0f)

    #define kAnimationKey @"animationKey"


    -(void)layoutScrollImages
    {
      UIImageView *view = nil;
      NSArray *subviews = [myScrollView subviews];

      CGFloat curXLoc = 0;
      for (view in subviews)
      {
        if ([view isKindOfClass:[UIImageView class]] && view.tag > 0)
        {
          CGRect frame = view.frame;
          frame.origin = CGPointMake(curXLoc, 0);
          view.frame = frame;

          curXLoc += (self.view.frame.size.width);
        }
      }

      [myScrollView setContentSize:CGSizeMake((myImagesCount * self.view.frame.size.width), [myScrollView bounds].size.height)];
    }   


    // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
    - (void)viewDidLoad {

      self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor];
      myScrollView = [[UIScrollView alloc] initWithFrame:
      CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

      [self.view addSubview:myScrollView];

      UISwipeGestureRecognizer *rightRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipeHandle:)];
      rightRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
      rightRecognizer.numberOfTouchesRequired = 1;
      [rightRecognizer setDelegate:self];
      [myScrollView addGestureRecognizer:rightRecognizer];
      [rightRecognizer release];

      UISwipeGestureRecognizer *leftRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(leftSwipeHandle:)];
      leftRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
      leftRecognizer.numberOfTouchesRequired = 1;
      [leftRecognizer setDelegate:self];
      [myScrollView addGestureRecognizer:leftRecognizer];
      [leftRecognizer release];

      [myScrollView setBackgroundColor:[UIColor blackColor]];
      [myScrollView setCanCancelContentTouches:NO];
      myScrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
      myScrollView.clipsToBounds = YES;     
      myScrollView.scrollEnabled = YES;
      myScrollView.pagingEnabled = YES;
      myScrollView.delegate = self;
      myImagesCount = 5;
      myScrollView.showsHorizontalScrollIndicator=NO;
      myScrollView.showsVerticalScrollIndicator=NO;

      for (int i = 1; i <= myImagesCount; i++)
      {
        NSString *imageName = [NSString stringWithFormat:@"screen-%d.jpg", i];
        UIImage *image = [UIImage imageNamed:imageName];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

        CGRect rect = imageView.frame;
        rect.size.height = myScrollView.frame.size.height;
          NSLog(@"%d -----",self.view.frame.size.width);
        rect.size.width = myScrollView.frame.size.width;
        imageView.frame = rect;
        imageView.tag = i;
        [myScrollView addSubview:imageView];
        [imageView release];
      }
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button addTarget:self action:@selector(buttonHandler) forControlEvents:UIControlEventAllEvents];
    [button setTitle:@"point" forState:UIControlStateNormal];
    button.frame = CGRectMake(0.0, 0.0, 100.0, 40.0);
    button.backgroundColor = [UIColor blackColor];
    [self.view addSubview:button];
      [self layoutScrollImages];

      [super viewDidLoad];

    }
4

2 に答える 2

0

これを試して

ボタンをグローバルに宣言して設定する

[self layoutScrollImages];

[self.view bringSubViewToFront:button];
于 2012-05-28T05:39:00.250 に答える
0

UIButtonあなたの質問に基づいて、あなたはサブビューとしてを追加したいと思いますUIImageView-私はforループで推測していますか?私が見る当面の問題は、実際のボタンがforループの外側で生成されていることです。forループは次のようになっていると思います。

for (int i = 1; i <= myImagesCount; i++)
{
    NSString *imageName = [NSString stringWithFormat:@"screen-%d.jpg", i];
    UIImage *image = [UIImage imageNamed:imageName];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button addTarget:self action:@selector(buttonHandler)  forControlEvents:UIControlEventAllEvents];
    [button setTitle:@"point" forState:UIControlStateNormal];
    button.frame = CGRectMake(0.0, 0.0, 100.0, 40.0);
    button.backgroundColor = [UIColor blackColor];

    CGRect rect = imageView.frame;
    rect.size.height = myScrollView.frame.size.height;
    NSLog(@"%d -----",self.view.frame.size.width);
    rect.size.width = myScrollView.frame.size.width;
    imageView.frame = rect;
    imageView.tag = i;

    [imageView addSubview:button];
    [myScrollView addSubview:imageView];
    [imageView release];
}
于 2012-05-28T06:06:53.933 に答える