0

これを明確に尋ねていない場合は申し訳ありません...私はXCodeにかなり慣れていません。頑張ります。

1、2、および 3 の 3 つの値を持つカスタム UISlider を作成しています。次のようなものを使用して、UISlider を位置に送信する方法に関する投稿を見てきました。

[mySlider setValue:2 animated:YES];

私の質問は、UISlider のカスタム クラス内からこれを行うにはどうすればよいですか? 私はもう試した:

[self setValue:3 animated:YES];

しかし、これはカスタム クラス ファイル内からは機能しません。私が間違っている可能性があることについて、誰かが私を啓発することはできますか。

私は基本的に、カスタム クラスのendTrackingWithTouch内で if ステートメントを使用して、タッチアップ時にスライダーの値を確認し、それを左端の中央または右端の位置に送信しています。

繰り返しますが、私が十分な詳細を提供していない場合、または十分に明確に尋ねていない場合は、お詫び申し上げます.

ありがとう!

4

1 に答える 1

1

カスタムクラスを使用していますか? IB のスライダーをカスタム クラスに設定しましたか?

ここに画像の説明を入力

また、プロパティがカスタムスライダーに設定されていることを確認してください

@property (weak, nonatomic) IBOutlet MySliderClass *MySlider;

カスタムスライダークラス内で、これは機能します

self.value = 1;

これはカスタム スライダー クラスです。

#import "MySliderClass.h"

@implementation MySliderClass

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        //[self setTheSlider];
        // these both work
        //self.value = 1;
    }
    return self;
}

- (void) setTheSlider
{
    self.value = 1;
}

@end

クラスの外からスライダーを設定するには、必要なものです。これをヘッダーファイルに追加します

- (void) setTheSlider;

次に、viewControllerからこれを行います

[self.MySlider setTheSlider];
于 2013-10-16T05:17:44.917 に答える