【问题标题】:What is Referencing outlet collection in Xcode4 Interface Builder?什么是 Xcode4 Interface Builder 中的引用插座集合?
【发布时间】:2011-10-02 17:25:02
【问题描述】:

这里,我指的是Referencing Outlet Collection。我无法弄清楚它在 XCode4 中的用法。

我要求在 XCode4 的 InterfaceBuilder 中提供 REFERENCING OUTLET COLLECTION 的新功能。

【问题讨论】:

    标签: ios iphone xcode4 interface-builder iboutletcollection


    【解决方案1】:

    IBOutletCollection 是对IBOutlets 进行分组的一种方式。假设您有 3 或 4 个UILabels,您将在其上应用样式(字体、背景颜色、不透明度等)。使用IBOutletCollection,这样做变得微不足道。首先你需要定义你的IBOutletCollection:

    @property (nonatomic, retain) IBOutletCollection(UILabel) NSArray *labelsCollection;
    

    (请注意我们放在括号内的类型,尽管如果我们有一个混合集合,我们可以放一个id

    在 Interface Builder 上连接 IBoutlets,然后对其进行迭代:

    for(UILabel *label in labelsCollection)
    {
        // Apply your styles
    }
    

    希望这能帮助你理解:

    http://useyourloaf.com/blog/2011/3/28/interface-builder-outlet-collections.html

    【讨论】:

      【解决方案2】:

      我刚刚破解了 XIB。

      您可以在此处查看正在使用的 Outlet 集合:

      一个控件可以有多个手势识别器,它们存储在:

      UITouch 
      @property(nonatomic,readonly,copy) NSArray *gestureRecognizers
      

      打开 IB

      将 UITextView 拖到 IB 视图中。

      将捏合手势识别器拖到文本视图中。

      单击对象树中的每个对象并打开连接检查器。

      你会看到它被添加了一个集合,而不是一个单一的出口。

      OUTLET COLLECTIONS
      
      gestureRecognizers ------> Pinch Gesture
      

      【讨论】:

        【解决方案3】:

        使用 XCode Interface Builder 创建/连接您的 IBOutlet 到 IBOutlet 集合。结果,您将在 .h 文件中获得以下代码:

        @property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *labels;
        

        在 .m 文件中,您可以使用 for-loop 进行迭代以获得所需的功能,例如字体大小或颜色:

        for (UILabel *label in self.labels) {
                label.font = [UIFont systemFontOfSize:14];
                label.textColor=[UIColor blueColor];
        }
        

        @synthesize labels;
        ...
        for (UILabel *label in labels) {
                label.font = [UIFont systemFontOfSize:14];
                label.textColor=[UIColor blueColor];
        }
        

        【讨论】:

          【解决方案4】:
          swift: 
          
           // create outlet colllections
           @IBOutlet var name: [UILabel]!
              @IBOutlet var ageLabel: [UILabel]!
              @IBOutlet var genderLabel: [UILabel]!
              @IBOutlet var weightLabel: [UILabel]!
              @IBOutlet var heightLabel: [UILabel]!
              @IBOutlet var bmiLabel: [UILabel]!
              @IBOutlet var smokerLabel: [UILabel]!
              @IBOutlet var hdraLabel: [UILabel]!
          
          // declare global vars
            var names: UILabel;
              var ageLabels: UILabel;
              var genderLabels: UILabel;
              var weightLabels: UILabel;
              var heightLabels: UILabel;
              var bmiLabels: UILabel;
              var smokerLabels: UILabel;
              var hdraLabels: UILabel;
          
          // assign values
            for name:UILabel in self.name {
                      self.names = name
                  }
          
                  for ageLabel:UILabel in self.ageLabel {
                      self.ageLabels = ageLabel
                  }
          
                  for genderLabel:UILabel in self.genderLabel {
                      self.genderLabels = genderLabel
                  }
          
                  for weightLabel:UILabel in self.weightLabel {
                      self.weightLabels = weightLabel
                  }
          
                  for heightLabel:UILabel in self.heightLabel {
                      self.heightLabels = heightLabel
                  }
          
                  for bmiLabel:UILabel in self.bmiLabel {
                      self.bmiLabels = bmiLabel
                  }
          
                  for smokerLabel:UILabel in self.smokerLabel {
                      self.smokerLabels = smokerLabel
                  }
          
                  for hdraLabel:UILabel in self.hdraLabel {
                      self.hdraLabels = hdraLabel
                  }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2010-09-15
            • 1970-01-01
            • 2018-09-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多