【问题标题】:Set the title for a button using number使用数字设置按钮的标题
【发布时间】:2014-06-22 20:35:12
【问题描述】:

我有一个班级编号,它有一个属性“randnum”,它生成一个随机数。我想将 UIButton 的标题设置为这个随机数,但它不起作用。请指出一种方法吗?

随机数属性:-

    -(void)setRandnum:(NSString *)randnum
    {
        _randnum=randnum;
        NSArray *nums = @[@"0", @"1", @"2", @"3", @"4", @"5",@"6",@"7",@"8",@"9"];
        unsigned index=arc4random()%10;
        NSString* num = [NSString stringWithFormat:@"%@", [nums objectAtIndex:index]];
        _randnum=num;
    }

这就是我尝试在 ViewController 中设置按钮标题的方式:-

这里的 numbers 是一个 outlet 集合: @property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *numbers;

这是用于 UIButton 的数字;

    -(void)setNumbers:(NSArray *)numbers
    {
        _numbers=numbers;
        for (UIButton* button in self.numbers) {
            Number * number=[[Number alloc]init];
            [button setTitle:number.randnum forState:UIControlStateNormal];
        }
    }

【问题讨论】:

    标签: objective-c uibutton


    【解决方案1】:

    查看您的代码,您没有在任何地方设置 randnum,请尝试以下代码

    -(void)setNumbers:(NSArray *)numbers
    {
        _numbers=numbers;
        for (UIButton* button in self.numbers) {
            Number * number=[[Number alloc]init];
            [number setRandnum:nil];
            [button setTitle:number.randnum forState:UIControlStateNormal];
        }
    }
    

    然而,这似乎不是实现您想要实现的目标的最合适方式。

    【讨论】:

      【解决方案2】:

      为什么你需要它作为一个类,你为什么不把它用作一个函数呢?其简单的随机函数。把它当作一个函数来使用。

      如果类是唯一的解决方案,请不要覆盖 setter 方法。只需将其添加为函数即可。它会起作用的。这两种情况我都试过了,效果很好。

      【讨论】:

      • 非常感谢,但我不明白属性有什么问题。
      猜你喜欢
      • 1970-01-01
      • 2021-03-27
      • 1970-01-01
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多