代码之家  ›  专栏  ›  技术社区  ›  kapso

UIScrollView不工作,只显示一幅图像

  •  0
  • kapso  · 技术社区  · 12 年前

    我正在尝试创建一个UIScrollView,但它不起作用。我在视图中只看到一个图像-滑动1。滚动视图确实向前滚动,但它是空白的,我看不到其他两个图像。

    def create_image_scroll_view_NICE
        @scroll_view = UIScrollView.alloc.initWithFrame self.view.bounds
        @scroll_view.delegate = self
        @scroll_view.scrollsToTop = false
        self.view.addSubview @scroll_view
    
        @scroll_view.pagingEnabled = true
        @scroll_view.showsHorizontalScrollIndicator = false
        @scroll_view.contentSize = CGSizeMake(NUMBER_OF_PAGES * self.view.frame.size.width, self.view.frame.size.height)
    
        @delivery_image = UIImageView.alloc.initWithImage(UIImage.imageNamed("swipe3"))
        @scroll_view.addSubview @delivery_image
    
        @notification_image = UIImageView.alloc.initWithImage(UIImage.imageNamed("swipe2"))
        @scroll_view.addSubview @notification_image
    
        @box_image = UIImageView.alloc.initWithImage(UIImage.imageNamed("swipe1"))
        @scroll_view.addSubview @box_image
      end
    
    2 回复  |  直到 12 年前
        1
  •  1
  •   andrewsi Laxman Battini    12 年前

    因为三个图像帧是相同的。 您需要这样设置帧:

    delivery_image.frame = CGRectMake(0,0,width,height);
    notification_image.frame = CGRectMake(self.view.frame.size.width,0,width,height);
    box_image.frame = CGRectMake(self.view.frame.size.width*2,0,width,height);
    
        2
  •  1
  •   Paul.s    12 年前

    您的所有imageView都将具有 [0, 0] 因此它们将全部重叠。

    您需要做的是偏移每个图像的帧,使其显示在上一个图像的旁边

    %w(swipe3 swipe2 swipe1).each_with_index do |image_name, index|
      delivery_image = UIImageView.alloc.initWithImage(UIImage.imageNamed(image_name))
    
      x_offset = CGRectGetWidth(self.view.frame) * index
      delivery_image.frame = [[ x_offset, 0], delivery_image.frame.size ]
    
      @scroll_view.addSubview delivery_image
    end