菜鸟教程小白 发表于 2022-12-12 21:50:24

ios - 向 iCarousel 项目添加自定义手势


                                            <p><p>您好<br/>我已经使用 Xcode 有一段时间了,并且现在使用了很多次 <code>UIGestureRecognizers</code>。目前我正在开发一个需要轮播的 iPad 应用程序,所以有什么比使用 iCarousel 更好,因为我已经遇到过它,我认为它很棒。 <br/>
我在向轮播项目添加 <code>UISwipeGestureRecognizer</code> 时遇到了一些问题(我会用它来删除“刷过”项目)。看起来很容易,但看起来 <code>UIGestureRecognizer</code> 不存在,但如果打印 view.recognizer 我可以看到它实际上存在。我错过了什么?
对于任何语言错误,我们深表歉意!</p>

<p><strong>代码</strong> <br/>
</p>

<pre><code>- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
    UILabel *nameLabel = nil;
    UILabel *notesLabel = nil;
    UIImageView *icon1 = nil;
    UIImageView *icon2 = nil;

    Notebook *referenceNotebook = ;

    //create new view if no view is available for recycling
    if (view == nil)
    {
      view = [ initWithFrame:CGRectMake(0, 0, 250.0f, 373.0f)];
      ((UIImageView *)view).image = ;
      view.contentMode = UIViewContentModeCenter;

      CGPoint startingPoint = view.frame.origin;
      CGSize startingSize = view.frame.size;

      nameLabel = [ initWithFrame:CGRectMake(startingPoint.x, startingPoint.y + 60, startingSize.width, 100)];
      nameLabel.backgroundColor = ;
      nameLabel.textAlignment = NSTextAlignmentCenter;
      nameLabel.font = ;
      nameLabel.tag = 1;
      ;

      notesLabel = [initWithFrame:CGRectMake(startingPoint.x, startingPoint.y + 95, startingSize.width, 100)];
      notesLabel.backgroundColor = ;
      notesLabel.textAlignment = NSTextAlignmentCenter;
      notesLabel.font = ;
      ;

      icon1 = [ initWithFrame:CGRectMake(startingPoint.x + 105, startingPoint.y + 18, 40, 40)];
      icon1.image = ;
      ;

      icon2 = [ initWithFrame:CGRectMake(startingPoint.x + 105, startingPoint.y + 320, 40, 40)];
      icon2.image = ;
      ;

      //UIView *swipeView = [ initWithFrame:CGRectMake(startingPoint.x, startingPoint.y, startingSize.width, startingSize.height)];
      //swipeView.backgroundColor = ;

      //UISwipeGestureRecognizer *swipeRecognizer = [ initWithTarget:self action:@selector(carouselSwipewipeHandler:)];
      //;
       // ;

      //;
    }
    else
    {
      //get a reference to the label in the recycled view
      nameLabel = (UILabel *);
    }

    nameLabel.text = referenceNotebook.name;
    notesLabel.text = @&#34;n note&#34;;

    UISwipeGestureRecognizer *swipeRecognizer = [ initWithTarget:self action:@selector(carouselSwipewipeHandler:)];
    ;
    ;

    view.tag = index;
    NSLog(@&#34;gesture recogs: %@&#34;, view.gestureRecognizers);
    return view;
}
</code></pre>

<p><br/>
有人知道我做错了什么吗?
这也是 <strong>iCarousel 文档</strong>的链接:
<a href="https://github.com/nicklockwood/iCarousel#detecting-taps-on-item-views" rel="noreferrer noopener nofollow">https://github.com/nicklockwood/iCarousel#detecting-taps-on-item-views</a> <br/><br/>提前致谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>默认情况下,任何时候只能激活一种手势,并且轮播在内部使用一种手势进行滚动。因此,如果您想使用其他手势,您需要为您的手势和轮播手势添加一个代理,以便您可以使它们工作 <a href="https://developer.apple.com/library/ios/documentation/uikit/reference/UIGestureRecognizerDelegate_Protocol/Reference/Reference.html#jumpTo_5" rel="noreferrer noopener nofollow">simultaneously</a> .</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 向 iCarousel 项目添加自定义手势,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23315676/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23315676/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 向 iCarousel 项目添加自定义手势