2012-07-23 117 views

回答

4

第一U盤textfiled並添加此功能爲代碼

-(IBAction)changeSlider:(id)sender 
{ 
    text_field .text= [[NSString alloc] initWithFormat:@" Value %d ", (int)slider.value]; 
} 
0

在這種情況下,我在Xcode中設置滑塊具有值:0-3。但滑塊值爲float:0.000 - 3.000。

// **** Cylinder Volume Slider **** 

- (NSInteger) normalizeValueCylinderVolumeSlider:(float) value 
{ 
NSInteger normalizedValue = 0; 

if (value>1.5) 
{ 
    if (value>2.5) 
     normalizedValue = 3; 
    else 
     normalizedValue = 2; 
} 
else if (value>0.5) 
    normalizedValue = 1; 

return normalizedValue; 

}

- (IBAction)valueChangedCylinderVolumeSlider:(UISlider *)sender 
{ 
float value = [sender value]; 
NSInteger normalizedValue; 

// Step 1: 

normalizedValue = [self normalizeValueCylinderVolumeSlider:value]; 

// Step 2: 

if (normalizedValue>value) 
{ 
    if ((normalizedValue-value)<0.3) 
     sender.value = normalizedValue; 
} 
else if ((value-normalizedValue)<0.3) 
    sender.value = normalizedValue; 

}

- (IBAction)touchUpInsideCylinderVolumeSlider:(UISlider *)sender 
{ 
float normalizedValue = 0; 

normalizedValue = [self normalizeValueCylinderVolumeSlider:[sender value]]; 

sender.value = normalizedValue; 

}

- (IBAction)touchUpOutsideCylinderVolumeSlider:(UISlider *)sender 
{ 
float normalizedValue = 0; 

normalizedValue = [self normalizeValueCylinderVolumeSlider:[sender value]]; 

sender.value = normalizedValue; 

}


在valueChanged動作上,(步驟1)我將該值設置爲剛性值:0,1,2,3。並且(步驟2)如果滑塊的大拇指剛好接近剛性值0.3值。

在touchUpInside & touchUpOutside我從valueChanged操作重複'step 1'代碼,以確定拖動操作結束於操縱桿範圍('步驟2')之外的滑塊值。


最好的是把所有這些代碼放在Slider的一個子類中。但這是我第一次在iOS開發上進行第一週的嘗試。

相關問題