2012-10-12 25 views
3

我是iOS開發新手,在UISlider上遇到困難。我已將UISlider添加到我的.xib連接到.h文件,並且可以看到.m文件中的操作方法,但是當我嘗試在UISlider屬性的.xib文件中設置最小值和最大值時,XCode崩潰。我認爲這與.m文件中的- (IBAction)slider:(id)sender方法創建值有關,但我做錯了什麼,因爲我嘗試的所有內容都會導致XCode崩潰。如何創建顯示UILabel的iOS UISlider,該UILabel顯示範圍爲1到10的值?

回答

2

試試這個代碼...

@interface SliderDemoViewController : UIViewController { 

     UILabel *sliderLabel; 
} 

@end 

將下面的代碼在「SliderDemoViewController.m」文件。

@implementation SliderDemoViewController 

@synthesize sliderLabel; 

- (void)dealloc { 
    [sliderLabel release]; 
    [super dealloc]; 

} 

-(IBAction) sliderChanged:(id) sender{ 

    UISlider *slider = (UISlider *) sender; 

    int progressAsInt =(int)(slider.value + 0.5f); 

    NSString *newText =[[NSString alloc] 
        initWithFormat:@"%d",progressAsInt]; 

    self.sliderLabel.text = newText; 
    [newText release]; 
} 


@end 

,也看到UISlider從這個波紋管連接的更多相關資料..

http://www.xprogress.com/post-35-uislider-tutorial-example-how-to-use-slider-in-iphone-sdk-xcode/

我希望這會幫助你..

:)

+0

傑森是包含在本演示要求... :) –

1

確保您的滑塊連接到動作方法..並假定標籤有一個名爲sliderLabel的出口。滑塊調用的動作方法是因爲它的值是cha nged可以被實現爲:

- (IBAction)slider:(id)sender{ 
    UISlider *slider = (UISlider *)sender; 
    int progressAsInt = (int)roundf(slider.value); 
    sliderLabel.text = [NSString stringWithFormat:@"%d", progressAsInt]; 
} 

這裏的值被四捨五入,以顯示only..I我假定正在實施爲一個非常小的範圍等0-1,但更大的範圍內未啓用代爾整數值..你剛纔提到你在nib..minimum實現滑塊和最大值可以在屬性檢查器爲你做它編程的slider..if進行設置,它會略有不同..

7
CGRect frame = CGRectMake(0.0, 0.0, 200.0, 10.0); 

// sliderAction will respond to the updated slider value 
UISlider *slider = [[UISlider alloc] initWithFrame:frame]; 
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged]; 

//設置Slider的最小值和最大值

slider.minimumValue = 0.0; 
    slider.maximumValue = 10.0; 
    slider.continuous = YES; 

    // Initial value 
    slider.value = 25.0; 

//添加滑塊來查看

[self.view addSubview:slider]; 


- (IBAction)sliderAction:(id)sender{ 
    UISlider *MYslider = (UISlider *)sender; 
    int SliderValue = (int)roundf(MYslider.value); 
    uilable *sliderLabel.text = [NSString stringWithFormat:@"%d", SliderValue]; 
}