小编pqt*_*eru的帖子

如何在UIImageview中添加手势识别器?

在项目中,UIViewmyView和UIImageViewmyImage背后是myView,视图层次结构:

UIWindow
| - UIImageView(myImage)
| - UIView(myView)[全屏]

然后在ViewController中为myImage添加了一个手势识别器

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
        tapGesture.numberOfTapsRequired = 1;
        [myImage addGestureRecognizer:tapGesture];
Run Code Online (Sandbox Code Playgroud)

但是手势不会影响myImage,myImage有setUserInteractionEnabled:YES.它只会影响myImage放在myView前面的时候,我该如何解决这个问题呢?

uiview uigesturerecognizer ios

5
推荐指数
1
解决办法
2万
查看次数

如何检测UIPageViewController到达最后一页

如何检测最后一页已pageViewController被调用,如果我想在最后一页上添加手势识别器并转发到我的应用程序主页,有没有办法做到这一点?

这是我的基本pageViewController片段,在我的UIPageViewController viewDidLoad

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Create the data model
    _pageImages = @[@"intro_1@2x.png", @"intro_2@2x.png", @"intro_3@2x.png", @"intro_4@2x.png"];

    // Create page view controller
    self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"RKYGuide"];
    self.pageViewController.dataSource = self;

    RKYGuideContentViewController *startingViewController = [self viewControllerAtIndex:0];
    NSArray *viewControllers = @[startingViewController];
    [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

    [self addChildViewController:_pageViewController];
    [self.view addSubview:_pageViewController.view];
    [self.pageViewController didMoveToParentViewController:self];
}
Run Code Online (Sandbox Code Playgroud)

此外,还实现了两个页面视图控制器数据源方法

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
    NSUInteger index = ((RKYGuideContentViewController*) viewController).pageIndex;

    if ((index == 0) || (index == NSNotFound)) {
        return …
Run Code Online (Sandbox Code Playgroud)

objective-c ios

5
推荐指数
1
解决办法
4481
查看次数

如何限制UITableViewController中的多选

这里有tableView数据源和委托实现,我设置的最大选择是5.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ...
    if ([multiOptions count] > 5) {
        [self tableView:tableView didDeselectRowAtIndexPath:indexPath];
        cell.accessoryType = UITableViewCellAccessoryNone;
        cell.selected = NO;
        //show alert
    }
    ...
}

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ...
    [multiOptions removeObject:selectedOption];
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是这里有一个问题,如果选项超出限制,第一次点击单元格就可以了.但第二次单击该单元格将调用

didDeselectRowAtIndexPath
Run Code Online (Sandbox Code Playgroud)

再次,那不是我的预期,我试过了

[tableView deselectRowAtIndexPath:indexPath animated:YES];
Run Code Online (Sandbox Code Playgroud)

在didSelectRowAtIndexPath中,它没有用,有人可以给我一个提示,如何纠正它?谢谢.

objective-c uitableview ios

1
推荐指数
1
解决办法
1590
查看次数