And*_*lli 2 iphone objective-c uiscrollview uiview ios
我正在遵循 Apple 的iOS 滚动视图编程指南。它看起来非常简单,但我收到此错误:
-[UIView setContentSize:]: unrecognized selector sent to instance 0x16d3be60
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setContentSize:]: unrecognized selector sent to instance 0x16d3be60'
我按照在 Interface Builder 中创建滚动视图中的步骤进行操作。很明显,它应该self.view是类型。我控制并从控制器拖动到滚动视图,如教程中所示,滚动视图似乎已注册为该控制器中的视图,如以下屏幕截图所示:UIViewUIScrollView

我尝试单击视图中的“x”,这样滚动视图将只是控制器中的视图,但没有效果(如灰显所示)。
我缺少什么?
顺便说一下,这是崩溃的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// Setup scroll size
UIScrollView *view = (UIScrollView*)self.view;
view.contentSize = CGSizeMake(self.view.frame.size.width, 960);
}
Run Code Online (Sandbox Code Playgroud)
在创建一个全新的 之后我会这样做UIViewController:
自定义类基本上是UIView.

我已将自定义类显式更改为UIScrollView,这几乎就是您需要实现的工作。

从那时起,您可以在类中强制转换并使用self.viewas ,因为它是 的纯实例。UIScrollViewUIScrollView
基本上,该解决方案不会更新最初创建的xib文件的标签,并且它仍然被Attributes InspectorXML识别。UIView
如果这是一个全新的空视图,您可以将新视图拖放UIScrollView到xib文件中,并可以将其正确连接到文件所有者,view例如:

正确的结果:
\n
之后可以删除原始视图,因为它不再连接到File\'s Owner。
\n如果您的视图中已经有很多子视图,则复制粘贴的方式可能不适用于上述关于交换视图的轻松解决方案 \xe2\x80\x93 您可以与文件建立完整的联系XML\xe2\x80\x93如果您觉得有足够的经验和信心来手动编辑该文件!如果您有任何疑问,请不要XML直接触摸或编辑该文件!
如果是,您只需将主标签从 更新view为scrollView,例如:

在进行任何更改后,属性检查器都会将视图视为纯 UIScrollView.