多个分段控件

时间:2014-11-29 12:15:27

标签: ios objective-c xcode uisegmentedcontrol

我需要实现两个分段控件。考虑到两个分段控件的索引,结果将是不同的。考虑到在第一个中,每个索引都有一个int固定数(不是变量),第二个控制有一个与每个索引相关的方程。我需要程序理解哪个是两个控件的组合(例如I = 0& II = 1)。 我开发此代码但不适合我。

if ((effortSegmented.selectedSegmentIndex ==0) && (styleSegmented.selectedSegmentIndex ==0)) {


        float weight_b = [weightTf.text floatValue];
        float totalCal = (((704*weight_b)/70.38) - 12);
        self.calL.text=[NSString stringWithFormat:@"~%.1f kcal", totalCal];


    } else if ((effortSegmented.selectedSegmentIndex==0) && (styleSegmented.selectedSegmentIndex==1)) {

        float weight_b = [weightTf.text floatValue];
        float totalCal = (((704*weight_b)/70.38)+32);
        self.calL.text=[NSString stringWithFormat:@"~%.1f kcal", totalCal];


    } else if ((effortSegmented.selectedSegmentIndex==0) && (styleSegmented.selectedSegmentIndex==2)) {

        float weight_b = [weightTf.text floatValue];
        float totalCal = (((704*weight_b)/70.38)+51);
        self.calL.text=[NSString stringWithFormat:@"~%.1f kcal", totalCal];

    }

你可以看到[-12,32,51]是与第一个控制索引相关联的固定int。即使我更改控制索引一,运行程序也不会导致标签发生任何变化。不知道在哪里看。

PS我无法声明标签,因为在

-(void)awakefornib {
[segControl setSegmentedCount:3]
}

我看不到setSegmentedCount。列表中没有。

由于

3 个答案:

答案 0 :(得分:0)

将tag属性设置为Segmented控件,并使用它来标识哪个事件属于哪个Seg控件。

- (void)awakeFromNib
{
    [segControl setSegmentCount:3];
    [[segControl cell] setTag:0 forSegment:0];
    [[segControl cell] setTag:1 forSegment:1];
    [[segControl cell] setTag:2 forSegment:2];

}

或者对于seg控件

self.mySegmentedControl.tag = 1;

答案 1 :(得分:0)

您可以将标记设置在您声明的位置或此方法调用之前设置为:

effortSegmented.tag=1;
styleSegmented.tag =2;

答案 2 :(得分:0)

我以这种方式解决,因为我还没有理解如何做标签。

- (IBAction)switchValue:(id)sender {


double teta = effortSegmented.selectedSegmentIndex;
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
[def setDouble:teta forKey:@"index"];
[def synchronize];



}

我将索引的值设置为变量。存放它。我是在与之前没有工作的分段控件相关的操作中做到的(数字1)。

然后我以这种方式获得了按钮动作中的变量:

- (IBAction)click_on:(id)sender {

NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
double gamma = [def integerForKey:@"index"];
int delta = gamma*50;

我调用了变量并在if语句中使用它。

if (styleSegmented.selectedSegmentIndex ==0) {

        float weight_b = [weightTf.text floatValue];
        float totalCal = ((704*weight_b)/70.38)+delta;
        self.calL.text=[NSString stringWithFormat:@"~%.1f kcal", totalCal];


}

为了获得变量i的固定值,乘以常量的索引。结果是0和常量之间的数字。 这是我发现的最佳方式。我知道不正确,但希望能帮助别人。