1

以下のように、iOS5 で利用可能な新しいメソッドでカスタマイズした iPad アプリに UISegmentedControl があります。

[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

[[UISegmentedControl appearance] setDividerImage:segmentUnselectedUnselected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:segmentSelectedUnselected forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:segUnselectedSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17], UITextAttributeFont,
                                [UIColor colorWithRed:0.3 green:0.34 blue:0.42 alpha:1], UITextAttributeTextColor,
                                [UIColor whiteColor], UITextAttributeTextShadowColor,
                                CGSizeMake(0, 1), UITextAttributeTextShadowOffset, nil];

[[UISegmentedControl appearance] setTitleTextAttributes:textAttributes forState:UIControlStateNormal];

見た目は問題なく動作しますが、どのセグメントでも setEnabled:NO を呼び出しても効果がないという問題があります。セグメントは引き続きタッチ イベントに応答します。一部のセグメントを無効にするために何をする必要があるか知っている人はいますか?

4

2 に答える 2

0

これがまだ誰にとっても問題であるかどうかはわかりません(iOS 6で修正されているためですが、私からの回避策は次のとおりです(別の質問から借用):

あなたのviewDidLoadで、試してください:

dispatch_async(dispatch_get_main_queue(),^{
    [self.segmentedControl setEnabled:NO forSegmentAtIndex:2];
});

ビューが読み込まれると、外観プロキシが存在すると、UISegmentedControl の他のプロパティがリセットされるようです。メインスレッドでこれをスケジュールすると、再度有効/無効になります。これは、デフォルトのセグメントを選択するためにも機能します。

于 2013-03-05T03:54:15.093 に答える
0

UISegmentedControl のドキュメントで使用isEnabledForSegmentAtIndex:およびsetEnabled:forSegmentAtIndex:検出されます。それがうまくいくかどうか教えてください。

于 2012-05-29T20:53:58.440 に答える