繁体   English   中英

UIScrollView与IOS中的向左和向右箭头

UIScrollView with left and right arrows in IOS

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个UIScrollView,带有带有左右按钮的图像集。 我已经实现了使用此代码的向左移动图像左侧按钮的动作

 if ( scroll.contentOffset.x <= scroll.frame.size.width ) {
        CGRect frame;
        frame.origin.x = scroll.contentOffset.x + scroll.frame.size.width;
        frame.origin.y = 0;
        frame.size = scroll.frame.size;
         //NSLog(@"%f %f %f", frame.origin.y ,scroll.frame.size.width, frame.origin.x);
        [scroll scrollRectToVisible:frame animated:YES];
    }

它完美地工作

同样,我实现了右键操作的功能,无法正常工作,我做错了下面的代码

if (  scroll.frame.size.width <= scroll.contentOffset.x ) {
        CGRect frame;
        frame.origin.x = scroll.contentOffset.x - scroll.frame.size.width;
        frame.origin.y = 0;
        frame.size = scroll.frame.size;

        [scroll scrollRectToVisible:frame animated:YES];
    }
6 个回复

它应该与左侧相反,检查:如果大于,然后从当前x位置减去scrollview宽度

if ( scroll.contentOffset.x >= scroll.frame.size.width ) {
    CGRect frame;
    frame.origin.x = scroll.contentOffset.x - scroll.frame.size.width;
    frame.origin.y = 0;
    frame.size = scroll.frame.size;
     //NSLog(@"%f %f %f", frame.origin.y ,scroll.frame.size.width, frame.origin.x);
    [scroll scrollRectToVisible:frame animated:YES];
}

MMm ..我建议您以其他方式执行此操作。 创建两个按钮和单独的操作方法rightArrowNavigation,leftArrowNavigation。 在我的代码currentPage中在此处添加全局int值,并在viewDidLoad中分配0。请参见下文

- (IBAction)rightArrowNavigation:(id)sender {

    CGRect bounds = self.scrollView.bounds;
    bounds.origin.x = CGRectGetWidth(bounds) * (currentPage + 1);
    [self.scrollView scrollRectToVisible:bounds animated:YES];
}

- (IBAction)leftArrowNavigation:(id)sender {

    CGRect bounds = self.scrollView.bounds;
    bounds.origin.x = CGRectGetWidth(bounds) * (currentPage - 1);
    [self.scrollView scrollRectToVisible:bounds animated:YES];
}

对于右键,为什么要检查contentOffset.y? 它应该是contentOffset.x,是否启用了分页?

使用这个,我认为它将解决

if ( _scroll.contentOffset.x >= _scroll.frame.size.width/2 ) {
        CGRect frame;
        frame.origin.x = _scroll.contentOffset.x - _scroll.frame.size.width;
        frame.origin.y = 0;
        frame.size = _scroll.frame.size;
        //NSLog(@"%f %f %f", frame.origin.y ,scroll.frame.size.width, frame.origin.x);
        [_scroll scrollRectToVisible:frame animated:YES];
    }

左侧功能正确,而对于要创建水平滚动条的右侧功能,则应使用x原点和宽度。 您的右侧条件和代码应基于x原点,宽度,基本上是所有那些负责水平滚动的参数

启用滚动视图分页。 如果您不希望启用分页,请尝试更多数学。

(IBAction)leftButtonClicked:(id)sender {

      if (self.iTemScrollView.contentOffset.x <
self.iTemScrollView.contentSize.width - self.iTemScrollView.frame.size.width){           
    [self.iTemScrollView setContentOffset:CGPointMake(self.iTemScrollView .contentOffset.x + self.iTemScrollView .frame.size.width, 0) animated:YES];
    }

}

(IBAction)rightButtonClicked:(id)sender {

    NSLog(@" rightbutton self.iTemScrollView.contentOffset.x %f",self.iTemScrollView.contentOffset.x);
    NSLog(@"rightbutton self.iTemScrollView.contentOffset.y %f",self.iTemScrollView.contentOffset.y);

    if (self.iTemScrollView.contentOffset.x>0){
    [self.iTemScrollView setContentOffset:CGPointMake(self.iTemScrollView .contentOffset.x - self.iTemScrollView .frame.size.width, 0) animated:YES];
    }

}
-(IBAction)leftScroll:(id)sender 
      {
  //page variable initialize to 0 in view did load method
      if(page!=0)
       {
         CGRect frame = scrollEvent.frame;
         frame.origin.x = frame.size.width * (--page);
         frame.origin.y = 0;
         [scrollEvent scrollRectToVisible:frame animated:YES];
       }
  }
- (IBAction)rightScroll:(id)sender 
     {

         if(arrData.count>page)
          {
           CGRect frame = scrollEvent.frame;
           frame.origin.x = frame.size.width * (++page);
           frame.origin.y = 0;
           [scrollEvent scrollRectToVisible:frame animated:YES];
          }
      }
2 在UIScrollView中左右移动

我有一个UIScrollView ,它只能水平滚动。 我遇到的情况是UIScrollView的数组填充了视图。 在UIScrollView ,共有三个视图,它们总共构成一个组件(有许多这样的组件)。 组件包含: UILabel UIButton UIView(用于 ...

3 幻灯片显示左/右箭头

我的网站上有四个幻灯片,在我添加jQuery函数Backstretch之前,它们都运行良好。 现在左右箭头显示为圆形和黑色 - 但是当箭头图像被拖动到​​新选项卡时,您可以看到它应该是它。 这是我的幻灯片代码: ...

4 获取左箭头和右箭头作为R中的绘图符号

我有一个数据集,我想在R中绘制,其中包含一个“左”和“右”类别的因子。 我想使用以某种方式指示方向的绘图符号,简单的解决方案是指向左右的三角形。 但是,R中的标准符号列表仅包括向上和向下指向的三角形(例如,pch = 2,6或24,25, 此处带有完整的符号列表)。 绘制左右三角形的最简单 ...

5 带有左/右箭头的可滚动菜单栏

我正在寻找创建类似于Fox News应用顶部的导航或菜单栏的功能。 我自己开始使用图库进行编码,但是我不确定在不需要左箭头和右箭头时如何隐藏它们。 如果您必须在菜单项中使用图像,或者是否可以只使用TextView或按钮,这样我就可以更改文本而不必修改图像,我也在徘徊。 我已经在几个应用程序 ...

6 用左右箭头滑动内容

我尝试了一个使用左箭头和右箭头滑动UL内容的示例。 我必须一次显示12个项目,当单击向右箭头时,接下来的12个项目应显示,而旧项目则被隐藏。 单击左箭头时,应显示旧的12个项目,并且应隐藏预设的12个项目。 我已经尝试过,但无法完成。 任何人都可以帮助完成此示例。 链接到我的示 ...

7 使用游戏板而不是左右箭头

他们在此打砖块教程中使用以下代码来控制桨: 如何更改它,以便播放器可以使用xbox360控制器或类似控制器进行控制? 谢谢! ...

2014-09-15 07:07:46 1 545   unity3d
8 如何使用带有左右箭头的Java Spinner?

我在Java Swing中使用过Java Spinner,但是它具有上下箭头,是否可以设置其方向,以便左右箭头? 多亏Jean-FrançoisSavard的回答,我离我们只有一步之遥,但仍然不太正确,我有以下几行内容: 间距不正确,如何解决? 我在上面的行中进行了硬编码,如何自 ...

9 悬停在箭头上时左右滚动

因此,当有人将鼠标悬停在箭头上方时,我试图简单地左右滚动。 我分叉了另一个JSFiddle,并从我要在其上进行此操作的网站复制了html / css。 在这里是: https : //jsfiddle.net/31hf4e0h/ 现在,当您将鼠标悬停在任一箭头上时,它会一直向右滚动,但 ...

10 添加向左和向右箭头以滚动滑块?

除了默认滚动条之外,是否还可以向jQuery UI Slider添加左右箭头? 我正在使用的特定示例是-&gt; http://jqueryui.com/slider/#side-scroll 如您所见,内容底部带有拖动滑块。 但是,当鼠标悬停在上方时,我还要添加一个左右箭头,它将 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM