【问题标题】:Show view from xib in ScrollView在 ScrollView 中显示来自 xib 的视图
【发布时间】:2013-05-03 23:36:23
【问题描述】:

首先我想说我是 iOS 开发的新手。我在 ScrollView 中显示来自 xib 文件的视图时遇到问题。

这个 MyView 只有一个标签的绿色背景。这是来自其控制器的代码:

@implementation MyView

  - (id)initWithFrame:(CGRect)frame
  {
      self = [super initWithFrame:frame];
      if (self) {
      //init code
      }
      return self;
   }

   - (id) initWithCoder:(NSCoder *)aDecoder 
   {
       if (self = [super initWithCoder:aDecoder]) {
       [self setAutoresizingMask:UIViewAutoresizingFlexibleHeight];
        }

   return self;
   }

@end

这是来自主控制器的代码,滚动视图在哪里:

 - (void)viewDidLoad
{
   [super viewDidLoad];

   scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 67, self.view.frame.size.width, self.view.frame.size.height)];
   scroll.pagingEnabled = YES;
   scroll.frame = CGRectMake(0, 20, 320, 350);
   scroll.contentSize = CGSizeMake(320, 350);
   scroll.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
   scroll.bounces = YES;
   scroll.bouncesZoom = YES;
   scroll.scrollEnabled = YES;
   scroll.minimumZoomScale = 0.5;
   scroll.maximumZoomScale = 5.0;
   scroll.delegate = self;
   scroll.pagingEnabled = YES;

   NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];    
   UIView *myView = [nibContents objectAtIndex:0];
   myView.frame = CGRectMake(0,20,300,300);

   [scroll addSubview:myView];

}

我只想在 ScrollView 中看到 MyView(带有一个标签的绿色背景)。如果我运行这个应用程序,滚动视图是空的,里面什么也没有显示。

这可能是一个愚蠢的问题,但正如我所说,我是这方面的新手。我有一个来自 Apple 的 PageControll 应用程序,但对我来说,这在我的 iOS 开始时是相当复杂的代码。当然我在谷歌搜索......请告诉我哪里有问题。谢谢

【问题讨论】:

    标签: ios view scrollview xib


    【解决方案1】:

    你在哪里定义滚动?它是您的视图控制器的属性吗? 我认为这里的问题是您没有将滚动视图添加到视图控制器的视图中

    [self.view addSubview:scroll]
    

    【讨论】:

    • 在ViewController接口中定义:code__strong IBOutlet UIScrollView *scroll;
    • 所以我尝试将此代码放入 viewDidLoad 方法中并且有效!非常感谢!
    • 不客气 :) 你能把我的答案标记为正确吗? (赞成/反对票下的绿色勾号)
    【解决方案2】:

    似乎一切正常。只需保留您从以下行收到的类中的视图,并将其作为子视图添加到您的滚动视图。

    self.myView = [nibContents objectAtIndex:0];
    

    最好的问候。

    【讨论】:

    • 使用 strong 代替,相当于保留
    猜你喜欢
    • 1970-01-01
    • 2013-05-05
    • 2018-06-06
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2013-06-01
    • 1970-01-01
    相关资源
    最近更新 更多