在Code,IB和组合中创建对象仍然模糊

时间:2012-01-21 15:37:24

标签: iphone objective-c xcode cocoa-touch

我对Xcode等还很新,所以当它在Xcode中创建/使用对象时,我有点模糊。

例如,我使用了一个教程在代码中创建GestureRecognizer - 它非常简单。

现在我只有我的.h:

@interface PlayPage : UIViewController <UIGestureRecognizerDelegate>

这是我的.m:

UITapGestureRecognizer *tapTwo=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap)];
[tapTwo setDelegate:self];
[tapTwo setNumberOfTapsRequired:2];
[tapTwo setNumberOfTouchesRequired:1];
[self.view addGestureRecognizer:tapTwo]; //adds it to view

以下是我的问题:

1)如果我还想在IB中看到GestureRecognizer以及上面的代码(也许我可以更改一些设置,因为我不熟悉所有内容)我该如何实现?

2)您如何决定何时使用所有代码而不是混合代码/ IB?这完全是风格/舒适/熟悉的问题吗?

3)似乎宣称不同的对象需要不同的设置&#39;代码(例如UITextLabel vs GestureRecognizer vs UITextField) - 你怎么知道何时使用哪些代码?

感谢您帮助澄清这一点。

1 个答案:

答案 0 :(得分:1)

  1. 在Xcode 4.x界面构建器中,有UIGestureRecognizer个对象可以拖动到视图中。因此,您需要在“界面”构建器中添加UIGestureRecognizer(如果您需要在代码中进行更多配置,那么也可以将它们与插座连接)。

  2. 我尝试在IB中做任何我可以做的事情,并在必要时删除代码,但这是一个偏好问题。

    • 我宁愿注视视图的位置并使用快照指南而不是花一些时间在代码中搞清楚。
    • 如果你在IB
    • 中这样做,你可以隐藏很多锅炉板代码
  3. 开始输入并查看自动填充选项以慢慢记忆。但更重要的是,每次你使用一个你以前没用过的类时,你至少应该浏览文档以查看建议的内容。 如果问题海报真的不屑于查看可用的大量文档,可以轻松解决本网站上的一半问题。


  4. 更新

    您需要在Interface Builder中创建UIGestureRecognizer而不是您的代码。

    在Interface Builder中,确保Utilities疼痛可见,并将所需类别的UIGestureRecognizer拖放到您的视图中

    这就是UIGestureRecognizer类的样子:

    UIGestureRecognizer subclasses

    然后在Utilities面板中配置对象。如果您希望能够在代码中访问此对象,则需要IBOutlet

    在您的类头文件中为此

    添加一个新的ivar
    @property (nonatomic, retain) IBOutlet UITapGestureRecognizer *tapGestureRecognizer;
    

    在实现文件中合成此

    @synthesize tapGestureRecognizer = _tapGestureRecognizer;
    

    然后返回“接口”构建器,将ctrl + click + draggingFile's Owner连接到UIGestureRecognizer子类。然后从出现的窗口中选择您的ivar:

    enter image description here

    enter image description here