【问题标题】:How to Show UISwitch when UIStepper incremented value当 UIStepper 增加值时如何显示 UISwitch
【发布时间】:2018-05-14 12:05:24
【问题描述】:

我想做一个关于何时单击 UIStepper 并将其递增到 1 的任务。然后应该出现一个 Switch,当再次单击 UIStepper 时,另一个开关应该显示在第一个开关下方。

每当 UIStepper 递增时,我需要垂直显示至少 5 个开关。

-(void)onstepperClicked:(UIStepper*)selectedComponent {
if (selectedComponent == self.mainStepper) {
    if (self.mainStepper.value >=0) {
           float y=20;
        //output label
        self.outputLabel.text = [NSString stringWithFormat:@"%d",(int)self.mainStepper.value ];
        // slider animated with stepper
        [self.mainSlider setValue:self.mainStepper.value animated:YES];
        //switch
        self.repeatingSwitch = [[UISwitch alloc]init];
        self.repeatingSwitch.frame=CGRectMake(20,y+50,100, 100);
        [self.view addSubview:self.repeatingSwitch];
        self.repeatingSwitch.tintColor=[UIColor redColor];
        self.repeatingSwitch.onTintColor=[UIColor greenColor];
        self.repeatingSwitch.thumbTintColor =[UIColor blackColor];
    }


    }
}

【问题讨论】:

  • 请出示您的试用码。
  • 每次单击步进器时使用[myView addSubview: newSwitch]; 您可以使用自动布局将它们定位到您想要的位置。
  • 我发布了我的试用代码。请检查一下。
  • 你遇到了什么问题?
  • 在上面的代码中将float y=20 更改为float y = self.mainstepper.value * 20。您可能需要调整 20 以使其看起来不错。

标签: ios objective-c uiswitch uistepper


【解决方案1】:

使用 UIStackView。它会自动为您处理子元素的约束。参考

【讨论】:

  • 感谢您的建议,但我只需要使用步进器、开关、滑块。
  • UIStackView 是在 iOS 9.0 SDK 中引入的。所以你不能对那些使用低于 9.0 的 iOS SDK 的应用使用 StackView
【解决方案2】:

在笔尖中设计一个自定义单元格,里面有一个UISwitch。 然后在UIStepper 下方设置UITableView 和您设计的称重传感器。

当您点击UIStepper 时,只需增加UITableViewDataSource 方法中的行数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 2012-08-14
    • 2019-07-13
    • 1970-01-01
    相关资源
    最近更新 更多