15

私は 6 つのセグメントを持つ UISegmentedControl を持っています。値が変更されたときにメソッドを呼び出すようにしUIControlEventTouchDragInたいのですが、ユーザーが何かを選択しようとしているときに UILabel がその名前で表示されるようにするため、各セグメントが取得されたときにも呼び出されます。コントロール上で指をドラッグしますが、セグメント化されたコントロールは、物にドラッグしてもこの呼び出しを送信しません。助けてください。たぶん、ドラッグ時にメソッドを呼び出すコントロール上に UIButtons を作成する必要がありますが、タップを受け取ったときに値が変更されたメソッドを呼び出します。

4

2 に答える 2

37

あなたの質問を正しく理解していないかもしれませんが、これを使用することはできませんでした:

[segmentedControl addTarget:self 
         action:@selector(action:)  
         forControlEvents:UIControlEventValueChanged];

UIControlEventValueChanged を UIControlEventTouchDragIn に置き換えるだけですか? 次に、アクション メソッドで、UILabel のテキストを変更するなど、実行する必要があることをすべて行います。

多数のセルを含む UITableView と各セルに UISegmentedControll があり、うまく機能します。

UISegmentedControl のドキュメントはオンラインでは入手できないようですが、XCode のオーガナイザーで見ることができます。上記のコードは最初の例です。

于 2011-08-24T15:10:02.247 に答える
-6

UISegmentedControl をサブクラス化してオーバーライドすることができます

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    return;
}

タッチのドラッグと位置を管理するメソッド。

とにかくドラッグがどのセグメントにあるのかを知ることができないので、タッチですべてを手動で行い、それらの機能を使用して追跡する方が良いかもしれません.

于 2010-01-13T13:49:15.633 に答える