Yar*_*k T 13 xcode objective-c ios uistoryboard
我正在尝试创建和设计一个UIView
使用故事板,但以UIActionSheet
编程方式包含它.这基本上是为了避免使用带有像素的CoreGraphics定位功能
在旧的xcode中,我记得可以在没有任何控制器的情况下将UIView拖到笔尖上.
该视图显然必须连接到类,因此它将具有IBOutlet,但不会被添加到 self.view
让我觉得这应该是可能的一件事是,如果你将UIView拖入故事板中的控制器黑条,它会像这样弹出到位:
但它没有在屏幕上显示.这个功能是什么?我可以以某种方式打开这个视图并设计一下吗?
eri*_*ric 15
只需创建一个新的.xib文件.
然后在Interface Builder中获得新视图(.xib)后,创建UIView的新子类(例如MyView),将新视图(.xib)的类切换为MyView,创建一个实例您的控制器中的MyView,并将其作为子视图添加到您的其他视图.
*并回答你关于底部那个小黑条的问题,它被称为'Dock',它只是你场景中顶级文档的迷你代表.该扩展坞便于快速拖放图标并建立连接.在这里查看apple的故事板描述.雷Wenderlich具有易于遵循故事板教程这里.
你不能在故事板上有一个UIView
外面的UIViewController
.我猜这是因为故事板不知道如何识别或实例化当前的API.这是我对自己有用的东西.解决方案只是使用XIB并以UIView
编程方式加载它(就像以前一样).我发现大多数项目都使用了故事板,并且可以将多个视图控制器中可重复使用的视图耦合在一起,可以很好地协同工作.
下面是一些代码,用于将XIB作为自定义对象的一部分加载,并初始化对象.
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[[[NSBundle mainBundle] loadNibNamed:@"BannerView" owner:self options:nil] objectAtIndex:0];
[self addSubview:self.view];
self.frame = self.view.frame;
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
至于将视图拖入故事板上的黑条.这些观点仍然是其中的一部分UIViewController
,但它们不是顶级视图的"子视图".我认为文档大纲很好地显示了层次结构.
以下视图在我的主视图层次结构之外有2.1.1视图,2.1.2视图等,因为它们不是我的主视图的子视图.结果是,默认情况下不会显示它们.我确实有IBOutlets
设置,我有条件地使用标准addSubview:
和我的主视图层次结构添加/删除它们removeFromSuperview
.