0

我正在尝试在 imageview 中添加 uibutton。

但它没有显示按钮。

即使我尝试将其添加到 uiscrollview 以及 self.view。

但是 uibutton 没有显示任何内容

请让我知道有什么问题

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 回答