具有不同 UIView 子类和 XIB 文件的演示应用程序



>我正在制作一个包含 50 张幻灯片的演示应用程序。每张幻灯片都可以包含按钮,视频,...

所以我在考虑这样做。我创建了 50 个类,这些类是 UIView 的子类,每个类都有自己的 xib 文件。有了这个,我可以在UIView上放置不同的按钮并使用delegate methods来处理它们。

然后我有一个带有页眉和页脚图像的MainViewController,中间有一个scrollView.我像这样加载 XIB 文件。

  UIView *rootView = [[[NSBundle mainBundle] loadNibNamed:@"page1" owner:self options:nil] objectAtIndex:0];

将所有这些UIViews放在一个NSArray中,然后通过循环NSArray将它们放入scrollView

for (int i = 0; i < arrViews.count; i++) {
    CGRect frame;
    frame.origin.x = self.scrollView.frame.size.width * i;
    frame.origin.y = 0;
    frame.size = self.scrollView.frame.size;
    UIView *view = [arrViews objectAtIndex:i];
    [view setFrame:frame];
[self.scrollView addSubview:view];
}
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * arrViews.count,scrollView.frame.size.height);

所以我有以下classes

Page1.h (subclassed from UIVIew)
Page1.m 
MainViewController.h (subclassed from UIViewController)
MainViewController.m

我现在的问题是,我怎么能说我创建的UIViews(UIView *rootView)应该使用Page1的类。

在情节提要中,您必须将Class更改为自定义类。因此,例如,在您的页面1 XIB中,您必须转到身份检查器(第3个选项卡),然后在类文本框中键入Page1,对于下一页,您必须再次执行此操作。在这种情况下,您可以像这样调用rootView:

Page1 *rootView = (Page1*)[[[NSBundle mainBundle] loadNibNamed:@"page1" owner:self options:nil] objectAtIndex:0];

希望这有帮助。

相关内容

最新更新