【问题标题】:UIScrollView not scroll in IpadUIScrollView 不能在 Ipad 中滚动
【发布时间】:2014-08-26 19:33:54
【问题描述】:

我有一个包含空视图和滚动视图的 .xib 文件,下面是将滚动视图拉入主视图的代码,问题是滚动不起作用:

@property (atomic, retain) IBOutlet UIScrollView* scroll;

@synthesize scroll;

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addSubview:self.scroll];
}

我意识到在这个论坛和谷歌上环顾四周,但他们都没有解决我的问题,以防万一我提供我的项目下载,希望有人能看到这个问题:ScrollView Example Download

【问题讨论】:

    标签: ios objective-c ipad uiscrollview


    【解决方案1】:

    你必须告诉滚动视图它的大小和视图中的内容是什么。

    在你的情况下,你可以这样做:

    - (void)viewDidLoad {
        [super viewDidLoad];
        self.scroll.contentSize = self.scroll.bounds.size; // The content size
        self.scroll.frame = self.view.frame; // The view size
        [self.view addSubview:self.scroll];
    }
    

    这肯定不是最好的方法,但我只是放了这段代码,以便您了解“contentSize”的用法。

    如果您对 UIScrollView 有任何其他问题,请使用此页面。这是我找到答案的地方: https://developer.apple.com/library/ios/documentation/windowsviews/conceptual/UIScrollView_pg/CreatingBasicScrollViews/CreatingBasicScrollViews.html

    .

    【讨论】:

      【解决方案2】:

      正如@Departamento B 所提到的,向主视图添加新的滚动视图并不是真正必要的,因此您应该删除这一行。

      基本上,UIScrollViewcomponent 需要 2 个参数资产来控制其滚动:

      • 自己的框架

      您可以通过在Size inspector 中调整您的.xib 文件来控制此框架,或者您可以使用此类代码以编程方式进行:

      UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]。

      • 其内容的框架

      你应该调整其内容的框架以确保它可以滚动,基本上你应该使用这个方法:

      scrollView setContentSize:CGSizeMake(100, 200);

      在这种情况下,您的 scrollView 将垂直滚动,因为它的高度内容大于其高度的框架。

      您的代码示例

      @property (atomic, retain) IBOutlet UIScrollView* scroll;
      
      @synthesize scroll;
      
      - (void)viewDidLoad {
          [super viewDidLoad];
          // Readjust your scroll frame
          self.scroll.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
          // Set its content size
          self.scroll setContentSize:CGSizeMake(self.view.frame.size.width, self.view.frame.size.height * 2);
      
          // The following method is not necessary
          // [self.view addSubview:self.scroll];
      }
      

      【讨论】:

        【解决方案3】:

        如果您将 UIScrollView 放在 .xib 中,它应该已经存在了。

        [self.view addSubview:self.scroll];
        

        没有必要。

        滚动视图中的视图应该比实际滚动的滚动视图大。尝试在其中放置一些带有文本的静态 UILabel 来测试基本的滚动效果。

        【讨论】:

          猜你喜欢
          • 2014-08-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-09
          • 1970-01-01
          相关资源
          最近更新 更多