3

私はiOS開発に不慣れで、UISlider. UISliderファイルへの.xib接続にを追加し、.hファイルでアクション メソッドを確認でき.mますが、UISlider 属性でファイルの最小値と最大値を設定しようとすると.xib、XCode がクラッシュします。- (IBAction)slider:(id)senderファイル内のメソッドに値を作成することと関係があると思い.mますが、私が試みるすべてが XCode をクラッシュさせるため、何か間違ったことをしています。

4

4 に答える 4

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.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];
}
于 2012-10-12T10:58:14.117 に答える
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/

これがお役に立てば幸いです。

:)

于 2012-10-12T10:42:34.273 に答える
1

スライダーがアクションメソッドに接続されていることを確認してください..そして、ラベルにsliderLabelという名前のアウトレットがあると仮定します..値が変更されたときにスライダーが呼び出すアクションメソッドは、次のように実装できます。

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

ここでは、値は整数値のみを表示するために四捨五入されています..サイダーは0-1のような非常に狭い範囲ではなく、より広い範囲で実装されていると想定しています..そして、ペン先にスライダーを実装したと述べました..最小最大値は、スライダーの属性インスペクターで設定できます..プログラムで行うと、わずかに異なります..

于 2012-10-12T10:54:59.587 に答える