@Synthesize IBOutlet(UIScrollView)无效

时间:2012-01-12 05:10:33

标签: iphone objective-c-2.0 iboutlet synthesize

这是关于未正确合成的插座(UIScrollView)

在一个特殊情况下,我有一个声明为:

的接口
@interface VC_Create_Preview : UIViewController <UIScrollViewDelegate> {
    UIScrollView *scrollView;
}

@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;

并在实施中......

@synthesize scrollView;

但是在调试模式下,我看到我的自我&gt; scrollView旁边总是有一个0x0。 执行

等操作
CGRect frame = scrollView.frame;

始终返回原点,高度,宽度为零(我怀疑是因为它没有正确合成)

0x0是否意味着它没有指向内存中的任何位置? 这是否意味着它没有正确合成? 可能是因为IB中从插座到滚动视图的某处存在断开的链接?

干杯 凯文

5 个答案:

答案 0 :(得分:2)

  1. 确保您实际将UIScrollView连接到插座。
  2. 请记住,直到从笔尖加载视图后才会设置scrollView。

答案 1 :(得分:1)

0x0表示空指针,您可能没有将scrollView绑定到IB中的滚动视图...这意味着让viewControllers nib在其视图中有一个scrollView并绑定到插座。

答案 2 :(得分:0)

如果您想使用插座并使用用户会看到的实际尺寸(包括导航栏,标签栏等),您必须在viewWillAppearviewDidAppear处实现所有用户界面更改。<登记/> 阅读更多关于从笔尖加载视图的阶段。

答案 3 :(得分:0)

尝试删除scrollview的本地声明,即

@interface VC_Create_Preview : UIViewController <UIScrollViewDelegate> {
    UIScrollView *scrollView;//remove this
}

它可能对你有所帮助。同时分配使用_scrollView而不是scrollView

答案 4 :(得分:-2)

请确保您在代码中使用了正确的类,例如,您放入故事板的第一个UIViewController将具有通用的“whateveryourprojectiscalled”UIViewController。

然而,对我而言,问题在于我将其与其他几个UIViewController相关联,其中没有一个已经声明了自己的类,所以我写的卷轴出口只出现在主要原件上UIViewController这不是我需要它的地方。所以,一旦我写了一个自定义类名,然后重新编写代码以适应这一点。插座看起来很完美,工作正常。