0

我对 iPhone 开发相当陌生,所以如果之前有人问过这个问题,请原谅我。

我刚开始玩UIScrollView。我想让它的工作原理与 a 基本相同,UITableView但具有更多定制的“单元”,我已经实现了这一点并且效果很好,但我只是想澄清一下。

最初,当我设计这些“单元”时,我只在 Xcode 中创建了一个 UIView,它只为我提供了一个用于视图的 nib 文件,但这在处理引用插座和动作处理程序时并没有帮助我。

然后我创建了一个UIViewController,但我发现自己只是将视图添加UIViewControllerUIScrollView- [scrollView addSubview:myViewController.view]- 这感觉不对,因为它打破了“UIViewController每个屏幕一个”范式。

然后我去创建一个UIView子类,在初始化方法中我将控件添加到我的视图(一些标签和图像),根据我在笔尖中的设计方式定位它们。

最后一种方法几乎可以按我的意愿工作,但是我无法直观地设计单元格并利用 nib 文件感觉不对。

我怎样才能拥有自己的自定义UIView(非UIViewController)类,该类使用 nib 来获取可用于UIScrollView.

如果我无法使用UIScrollView's,请告诉我在哪里查看。

谢谢。

4

2 回答 2

0

您可以使用笔尖制作自己的 UIViews -

NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];

UIView *mySpecialView = [nibContents objectAtIndex:0];

[self addSubview:mySpecialView];

我已经使用了这个负载 - 当然没有必要为您需要添加的每个视图制作一个 UIViewController 的极端!

于 2012-04-11T15:15:43.537 回答
0

我认为您在这里尝试使用的方法确实使问题复杂化了。UITableView 实际上包含一个 UIScrollView (尽管您无法访问它),因此默认情况下它已经完成了您想要实现的目标。另外,为什么您认为每个视图应该只有一个视图控制器?在实践中,需要尽可能多的视图控制器来使您的应用程序正常工作和组织。

我建议您使用 UITableView 和自定义 UITableViewCell。您可以轻松地在 nib 中设计单元格,只需删除新 .xib 附带的默认视图并在其位置拖动 UITableViewCell 即可。这确实意味着您将需要一个 ViewController 用于您的自定义 UITableViewCell 但控制器不需要做任何事情,除非您需要设置单元格的文本。此外,您可以轻松地将单元格重用于内存目的(尽管您可以重用普通视图,但它不像单元格那样对内存友好 - 因为 Apple 专门设计了可重用的单元格。)

您需要我发布任何代码来帮助自定义单元格吗?让我知道我明天再回来看看,如果你这样做。

希望这对您的项目有所帮助,祝您好运。

于 2012-04-11T20:46:34.397 回答