【问题标题】:how to add/make the view visible under a scrollView?如何在滚动视图下添加/使视图可见?
【发布时间】:2011-07-17 02:19:50
【问题描述】:

我部分是通过添加一个滚动视图,通过实例化一个继承 uiscrollview 的类(下面称为 ScrollViewManager)来覆盖 touchesEnded。问题是虽然我的班级现在有滚动和触摸功能,但我再也看不到我的视图/笔尖文件了,即使它对触摸和滚动的响应很好。

我的想法是将 MyClass 笔尖添加回子视图?或者不知道...好像它就在那里,但只是隐藏在这个滚动视图后面。

'Myclass : UIViewController' 的摘录在 viewDidLoad 中有这些代码行来获取带有触摸响应的滚动动作。

非常感谢。这么多。

scrollView = [[ScrollViewManager alloc] initWithFrame:self.view.frame]; 
scrollView.contentSize = CGSizeMake(320, 600);
[scrollView setUserInteractionEnabled:TRUE];
[scrollView setScrollEnabled:TRUE];
self.view = scrollView;

//trying with this line to add my nib for this class on top of the scroll view
    //which doesn't work: 'Accessing unknown 'view' class method'
[scrollView addSubview:Myclass.view];
    [scrollView release];

【问题讨论】:

    标签: iphone xcode sdk uiscrollview xib


    【解决方案1】:

    self.view = scrollView 行使视图控制器指向的视图成为滚动视图。 ie self.view & scrollView 现在指向同一个对象

    之后,当您尝试 [scrollView addSubview:Myclass.view];实际发生的事情是您将 scrollView 添加到您的 scrollView 并访问 scrollview 的视图属性。

    只需删除 self.view = scrollView 行并执行此操作

    [self.view addSubView:scrollView];
    [scrollView release];
    

    希望它会起作用。

    【讨论】:

      【解决方案2】:

      由于某种原因,我无法将 cmets 添加到您的帖子中。它没有用。 Apple 谈论添加子视图here:但没有解释如何。他们的代码在下面添加滚动方面,就像我在上面所做的那样。我现在正在尝试将我的视图添加为子视图:

       UIView *newView = [[NSBundle mainBundle] loadNibNamed:@"MyClassView" owner:self options: nil];
      [scrollView addSubview:newView];
      

      但这会崩溃并且不会去哪里。不知道现在该怎么办。 Apple 的代码在这里带有原始 cmets:

        (void)loadView {
          CGRect fullScreenRect=[[UIScreen mainScreen] applicationFrame];
          scrollView=[[UIScrollView alloc] initWithFrame:fullScreenRect];
          self.view=scrollView;
          scrollView.contentSize=CGSizeMake(320,758);
          scrollView.contentInset=UIEdgeInsetsMake(64.0,0.0,44.0,0.0);
      
      
      // do any further configuration to the scroll view
      // add a view, or views, as a subview of the scroll view.
      
      // release scrollView as self.view retains it
      self.view=scrollView;
      [scrollView release];
      

      }

      【讨论】:

      • 你要发布 newView 吗?如果是,那么你不应该。
      • 不,我不会发布它。我也放弃了这种徒劳的做法。在玩了更多之后,我注意到我可以在代码中添加文本字段等,它们会显示出来,并且滚动仍然有效。问题是我有大约 30 个项目可以处理大量交互,所以我非常不愿意走这条路。看起来很奇怪和令人沮丧我只是无法添加我已经制作的视图(并且可以减去触摸滚动)。任何其他建议都非常受欢迎。感谢您的建议。
      • 刚刚注意到我可以将每个 nib 组件添加为子视图,并且它们保留了它们的功能。因此,如果情况变得更糟,这可能是一种解决方法。仍然觉得我可以用一行代码来解决原来的问题。那条魔法线……
      猜你喜欢
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多