私のアプリにはウィンドウに多くのボタンがあり、排他的タッチをすべてまとめて設定したいと考えています。これについて何か提案はありますか?ありがとう
質問する
10681 次
8 に答える
5
アプリのすべてのボタンに排他的なタッチを設定する方法があり、役立つ場合があります。
#import </usr/include/objc/objc-class.h>
static IMP gOringinalWillMoveToSuperview = nil;
static id newMoveToSuperviewPlusSettingExclusiveTouch(id self,SEL selector,...)
{
va_list arg_list;
va_start( arg_list,selector);
gOringinalWillMoveToSuperview(self,selector,arg_list);
[self setExclusiveTouch:YES];
return nil;
}
-(void)addSettingExclusiveTouchToAllUIViewMethodWillMoveToSuperview
{
gOringinalWillMoveToSuperview = class_getMethodImplementation([UIButton class], @selector(willMoveToSuperview:));
class_replaceMethod([UIButton class], @selector(willMoveToSuperview:), &newMoveToSuperviewPlusSettingExclusiveTouch, "v@:");
}
于 2012-12-29T11:07:35.913 に答える
2
一度にすべてを設定する簡単な方法をお探しですか?
配列内にすべてのボタンがある場合 (たとえば、すべて同じ IBOutletCollection に接続されている場合)、キー値コーディングを使用して、配列の ExclusiveTouch プロパティを設定できます。
[buttonArray setValue:[NSNumber numberWithBool:YES] forKey:@"exclusiveTouch"];
NSArray は、配列内のすべてのアイテムに対して同じメソッドを呼び出します。
于 2012-08-12T04:43:54.763 に答える
1
これらのボタンがすべて同じビューにある場合は、ビューのサブビューをループして、特定のサブビューがボタンであるかどうかをテストし (または、セットがある場合はタグをテストし)、それぞれに ExclusiveTouch を設定できます。
于 2012-08-12T04:50:16.300 に答える
1
これに対する答えを見つけました:
#pragma mark Set Buttons Exclusive Touch Yes
-(void)setExclusiveTouchForButtons:(UIView *)myView
{
for (UIView * button in [myView subviews]) {
if([button isKindOfClass:[UIButton class]])
[((UIButton *)button) setExclusiveTouch:YES];
}
}
于 2012-08-12T13:39:00.223 に答える
0
ビューコントローラーのビューのすべてのボタンに排他的なタッチを設定するSwiftのコードを次に示します
for button in self.view.subviews {
if(button.isKindOfClass(UIButton)){
(button as! UIButton).exclusiveTouch = true
}
}
于 2015-07-03T07:04:15.513 に答える