簡體   English   中英

如何讓UISwitch做某事?

[英]How can I get my UISwitch to do something?

我如何讓我的UISwitch調用此函數:打開時https://ghostbin.com/paste/y2xrc並返回FALSE; 當它關閉時。

(我已將開關顯示在Messages.app(MobileSMS.app)的“ CKTranscriptCollectionViewController”內部,現在我希望它在打開或關閉時執行某些操作,這是我在上面的鏈接中發布的內容)。

#import <UIKit/UIKit.h>
#import <ChatKit/CKConversation.h>

@interface CKTranscriptCollectionViewController : UIViewController
@property (nonatomic, strong) UISwitch *mySwitch;
- (void)loadView;
@end

%hook CKTranscriptCollectionViewController

- (void)viewDidLoad {   
    %orig;
    UISwitch *mySwitch = [[UISwitch alloc] initWithFrame:CGRectMake(10, 10, 51, 31)];
    [mySwitch setOn:NO animated:YES];
    [self.view addSubview:mySwitch];
}

%end

在頭文件中定義一個布爾值,

BOOL allowForceMMS;

-(BOOL)forceMMS {
    return allowForceMMS;
)

- (void)viewDidLoad {   
    %orig;
    UISwitch *mySwitch = [[UISwitch alloc] initWithFrame:CGRectMake(10, 10, 51, 31)];

    //add action on switch to handle switch on/off
    [mySwitch addTarget:self action:@selector(setState:) forControlEvents:UIControlEventValueChanged];

    [mySwitch setOn:NO animated:YES];
    [self.view addSubview:mySwitch];
}

-(void)setState:(UISwitch*)switch {
    allowForceMMS = switch.isOn;
}
[mySwitch addTarget:self action:@selector(switchValueChangeHandler:) forControlEvents:UIControlEventValueChanged];

在您的viewdidload中執行此操作

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

和這個功能

-(BOOL)forceMMS
{
     if (switchTemp.isOn)
     { 
       return YES;
     }
     else
     {
    return NO;
     }
 }

您可以指定要調用的目標。

- (void)viewDidLoad {   

UISwitch *mySwitch = [[UISwitch alloc] initWithFrame:CGRectMake(10, 10, 51, 31)];
[mySwitch addTarget:self action:@selector(valueChange:) forControlEvents:UIControlEventValueChanged];
[mySwitch setOn:NO animated:YES];
[self.view addSubview:mySwitch];
}
-(void)valueChange:(UISwitch*)switch
{
if(switch.isOn)
{
     //switch is on
}
else
{
     //switch is off
}

}

希望對您有幫助。

只需在viewDidLoad方法中如下創建UISwitch,

UISwitch *mySwitch = [[UISwitch alloc] init];
[mySwitch addTarget:self action:@selector(switchValueChangeHandler:) forControlEvents:UIControlEventValueChanged];

然后在方法更改的情況下調用方法時,檢查狀態為“ ON”(布爾值為YES或n = NO)

-(void)switchValueChangeHandler:(UISwitch*)sender
{
  NSLog(@"%@",sender.on);
}

然后根據sender.on是true還是false可以執行操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM