如何取消 UIPageControl 的 UIControlEventValueChanged 事件?
How to cancel UIPageControl's UIControlEventValueChanged event?
我有一个页面控件,我希望能够阻止某些页面更改事件(无需完全禁用该控件)。基本上,我希望用户在回答当前页面上的所有问题之前无法移动到下一页,但我仍然希望他们能够向后移动。
有没有办法让控件监听类似 "will change" 的事件并取消它?
您应该可以这样做,其中 condition
是一个布尔值,如果他们回答了所有问题,您可以将其设置为是,
@implementation ViewController {
BOOL condition;
NSInteger pageNumber;
}
- (void)viewDidLoad {
[super viewDidLoad];
pageNumber = 5; // I set this to 5 which was the page control's inital value just for the test
condition = NO;
}
- (IBAction)pageControlTapped:(UIPageControl *)sender {
if (condition) {
pageNumber = sender.currentPage;
// move to the next or previous page
}else{
if (pageNumber >= sender.currentPage) {
pageNumber = sender.currentPage;
// move to the previous page
}else{
sender.currentPage = pageNumber;
// don't move
}
}
}
我有一个页面控件,我希望能够阻止某些页面更改事件(无需完全禁用该控件)。基本上,我希望用户在回答当前页面上的所有问题之前无法移动到下一页,但我仍然希望他们能够向后移动。
有没有办法让控件监听类似 "will change" 的事件并取消它?
您应该可以这样做,其中 condition
是一个布尔值,如果他们回答了所有问题,您可以将其设置为是,
@implementation ViewController {
BOOL condition;
NSInteger pageNumber;
}
- (void)viewDidLoad {
[super viewDidLoad];
pageNumber = 5; // I set this to 5 which was the page control's inital value just for the test
condition = NO;
}
- (IBAction)pageControlTapped:(UIPageControl *)sender {
if (condition) {
pageNumber = sender.currentPage;
// move to the next or previous page
}else{
if (pageNumber >= sender.currentPage) {
pageNumber = sender.currentPage;
// move to the previous page
}else{
sender.currentPage = pageNumber;
// don't move
}
}
}