【问题标题】:Objective-C: Setting an alpha value with an array of elementsObjective-C:使用元素数组设置 alpha 值
【发布时间】:2017-02-21 11:58:01
【问题描述】:

我是 Objective-c 的新手,我正在尝试使用 for 循环将标签数组设置为 0.0 Alpha。有人可以帮帮我吗?

 NSArray *fadeLabels = @[@"_lonLabel", @"_firstLat",@"_firstLon",@"_firstReal",@"_firstMagnetic",@"_firstSpeed",@"_speedLabel",@"_realNorthLabel",@"_magneticNorthLabel"];

    for (int i=0; i<[fadeLabels count]; i++) {
        [fadeLabels objectAtIndex:i];
        //setAlpha:0.0f?
    }

【问题讨论】:

    标签: ios objective-c animation


    【解决方案1】:

    使用视图数组而不是字符串数组。在数组中插入您的视图。

    NSArray *fadeLabels = @[ _lonLabel, _firstLat, _firstLon, _firstReal, _firstMagnetic, _firstSpeed, _speedLabel, _realNorthLabel, _magneticNorthLabel];
    
    for (int i=0; i<[fadeLabels count]; i++) {
        UIView *view = (UIView *)[fadeLabels objectAtIndex:i];
        [view setAlpha:0.0f];
    }
    

    【讨论】:

      【解决方案2】:

      您正在使用 String 分配数组,名称为 equalTo 您的 UILabel 对象,因此您需要

      像这样替换你的数组元素

      @"_lonLabel"_lonLabel

       NSArray *fadeLabels = @[ _lonLabel, _firstLat, _firstLon, _firstReal, _firstMagnetic, _firstSpeed, _speedLabel, _realNorthLabel, _magneticNorthLabel];
      
          for (int i=0; i<[fadeLabels count]; i++) {
              UILabel *label = (UILabel *)fadeLabels[i];
              label.alpha = 0.0;
      
          }
      

      【讨论】:

      • 你有语法
      • true,如果所有视图都是标签。但是,概念是一样的。
      • @FuManchu 你喜欢哥们。需要帮助你可以问(y)
      【解决方案3】:

      您还应该更好地使用for...in 而不是“旧”for

      NSArray *fadeLabels = @[ _lonLabel, _firstLat, _firstLon, _firstReal, _firstMagnetic, _firstSpeed, _speedLabel, _realNorthLabel, _magneticNorthLabel];
      
      for (UILabel *label in fadeLabels) {
          label.alpha = 0.0;
      }
      

      【讨论】:

        猜你喜欢
        • 2012-07-11
        • 1970-01-01
        • 2018-09-01
        • 2015-07-26
        • 2020-10-16
        • 1970-01-01
        • 1970-01-01
        • 2014-07-08
        相关资源
        最近更新 更多