Tag: uiscrollview

迅速滚动滑块

UIScrollView的自定义滚动滑块。 安装 CocoaPods: 吊舱“ SwiftlyScrollSlider” 手册: 只需将SwiftlyScrollSlider.swift复制到您的项目中即可。 使用 使用真的很简单。 请为故事板或XIB中的滚动滑块创建例如UITextView和UIView ,并为此UIView设置一个SwiftlyScrollSlider类。 并且UITextView的委托应该是SwiftlyScrollSlider 。 就这样。 定制示例: scrollSlider.thumbImageView?.image = UIImage(named:“ ScrollSliderCustom.png”)//更改滚动滑块的图像 scrollSlider.lineBackgroundView?.backgroundColor = UIColor.yellowColor()//线条的颜色 scrollSlider.lineBackgroundView?.layer.borderColor = UIColor.yellowColor()。CGColor //线条颜色的渐变 您可以在此存储库中轻松找到示例。

将自动滚动定位逻辑封装在UIScrollView中

在我帮助开发的某些项目中,有时我需要控制UITextField在屏幕上的位置,主要是在使用大型可滚动屏幕时。 我从来不喜欢结果,因为我在视图控制器中放入了很多逻辑,而且我一直认为逻辑部分不应该存在。 因此,我想到了一种实现此目标的方法,现在我认为我有一个更好的解决方案。 我建立了一个从UIScrollView扩展的新类。 在此类内,我们具有所有逻辑指令,可以随时检测键盘何时调用活动,然后以预先设置的距离底部的距离控制内容。 为了在我们自己的项目中应用此解决方案,您要做的唯一任务是将类复制并粘贴到项目中。 在Xcode Identity检查器上,您必须使用名为“ KeyboardScrollView”的自定义类。 它既简单又实用。 我利用一个名为“ Extra Bottom Space”的属性作为IBInspectable,以允许程序员在IDE上设置一些底部调整空间。 将来可能要做的改进是自动检测键盘附件空间。 在此版本中,我没有考虑该增强功能。 因此,如果使用不同尺寸的键盘配件,但使用相同的键盘尺寸,则逻辑将失败,我的软件将按预期运行。 实作 演示项目 启发式/魔术键盘 MagicKeyboard –它是嵌入式UIScrollView实现,用于控制UITextField的定位。 github.com 希望对您有所帮助,欢迎提出任何意见或建议。

UIScrollView:如何在代码中使用AutoLayout

在阅读本文之前,但对UIScrollView ,我强烈建议您在UIScrollView上阅读此介绍文章。 PS:自从我在Brian YouTube网站上开设Brian Voong的Youtube课程以来,我已经将自己转换为程序编码员,这意味着我100%的UI员工使用的是代码而不是故事板。 首先第一件事: 最初,事情对我来说看起来很简单,只是: 将UIScrollView添加到主UIView 。 在UIScrollView上添加顶部,左侧,右侧,底部自动布局约束。 将UILabel (显示很多文本)作为子视图添加到刚刚添加的UIScrollView 。 在此新添加的UILabel上添加上,左,右,下AutoLayout约束。 然后,我认为事情应该正常进行。 虽然不是这样。 问题:UIScrollView无法滚动。 原因:尚未正确设置UIScrollView的contentSize。 如何以正确的方式做到这一点: 在现有或新创建的项目中,创建一个新的Swift文件:ScrollViewController.swift 2.在ScrollViewController中,添加所有UI元素将很快使用。 let text =“”“ Lorem ipsum dolor amet,除其他外为adhuc aperiri nam。按商品价格出售commodo melatore ea eam,按商品价格出售commodo meliore ea e。 persius pro,id cum falli accusam。在欧洲有良好的党派,多名成员,在nam。tempor poscent有意向书。 ad eam。per ce lalit vivendum。Ei sit null null aliquam,ferri epicuri quo。ex vim tibique […]

Swift4 Day50:UIPageControll,UIScrollView

如何显示比萤幕大的内容: 将UIScroll View加入画面,自动布局四边创建0 加入图片视图,自动布局上与左添加0,宽度与高度设置图片大小。 将scrollView连结到程式码,数字为显示内容的长宽。 放大缩小图片功能: scrollView上按快捷键,把委托连结到ViewController。 将图片连结到程式码,命名为image 输入以下程式码 5.用实体机build就可以了,如果用模拟器可以用键盘的可选模拟两根手指放大缩小。 如何使用UIPageControl切换页面 把UI View Controller删掉,加入Page View Controller 加入View Controller,更改颜色后在标识名称:FirstVC,SecondVC…

使用UIScrollView进行分页的无限滚动

看似简单的技术,它得益于良好的心理模型来解开纠结 《无限滚动》,乔什和伊丽莎,WWDC 2011 iOS的无限滚动技术已众所周知多年,尽管有时甚至在今天也被认为很困难。 我第一次听说这件事是在2011年Josh&Eliza的WWDC演讲中。 通常,当您在滚动视图上向左滑动时,您会得到屏幕向左流动的印象。 但是,iOS只是通过将视口移到相反的方向来给您那种印象。 在下一个示例中,在向左滑动显示黄色部分之前,仅滚动视图的柠檬绿色部分可见。 在此示例中,整个滚动视图没有更改,但是只有视图端口向右移动以显示黄色部分。 通过这种正常的滚动行为,您将陷于Content View的边缘。 Josh&Eliza引入的技术的关键思想是在UIScrollViewDelegate.scrollViewDidScroll(…)执行以下操作 将内容视图移向滑动方向,并使视口始终位于内容视图的中心 在内容视图的新开放空间中添加新内容 使用这种技术,我们永远不会卡在Content View的边缘,因为View端口始终位于中心。 只要我们的程序将新内容正确地输入到开放空间中,我们就可以永远滚动。 UIScrollViewDelegate.scrollViewDidScroll(…)是描述滚动调整动作的最佳位置之一,因为它在每次查看端口移动时以及在实际布局/渲染发生之前都会被调用。 翻页滚动 问题 上面的技术很容易实现,非常有效。 除了需要分页时。 UIScrollView有一个名为isPagingEnabled的标志。 通过仅将此标志设置为true ,滚动可以在每一页上完美地捕捉。 请查看以下“动物偷看”示例应用程序示例。 您希望每个滚动都像在gif中看到的那样捕捉每个动物。 否则,它不是peek-a-boo🙂 我敢打赌,如果滚动仅停在某一点,孩子们将不会高兴,因此这是将其作为无限滚动视图的动机。 如果我们在此应用程序中天真地实现Josh&Eliza的技术, 它将破坏 UIScrollView 的分页功能 。 请记住,Josh&Eliza的主要想法是将视口保持在Content View的中心。 这使iOS认为滚动视图根本不在页面上移动。 结果,页面捕捉将永远不会正确发生。 所以……休斯顿,我们有一个问题。 解 与这个世界上的一切一样,有一个解决方案。 这是一个相当容易的过程。 解决方案的关键思想是 我们不需要经常调整视口。 Josh&Eliza为简化代码做了太多事情。 每次 调用 scrollViewDidScroll(…) 时, Josh&Eliza 都会进行视口调整。 但是实际上,当您考虑它时,我们真正需要它只有两个时间 。 当视口移至右侧时, 下一页内容将占据视口的大部分。 […]

UIScrollView使用AutoLayout配置

当我们使用UIScrollView时,它会受到管理限制。 因此,这是使用AutoLayout管理UIScrollView的简便方法。 所以我们开始吧 步骤:1选取一个UIScrollView。 步骤2:将Constrain设置为0,尾随,前导,顶部和底部。 步骤:3取一个UIView来管理UIScrollView。 因此,控件的实际层次结构如下所示: 步骤4:将UIView的Constrain设置为尾部,前部,顶部和底部,并设置0。 步骤:5现在我们可以看到AutoLayout问题,因此,我们还向UIView添加了2个约束,如SuperView的Equal Width和Equal Height的给定与您想要的相同(我在这里给出1900以进行测试) 步骤:6运行该应用程序并进行测试。 您可以观看视频: 下载代码: https://github.com/javedmultani16/UIScrollView

UIScrollView和AutoLayout

自iOS 2.0起,UIScrollView就已经存在了。 但是,也可以使用AutoLayout配置滚动视图! 由于AutoLayout可以为您完成此操作,因此可以大大减少计算内容大小所需的代码量! 另外,它适用于风景和肖像。 配置UIScrollView 将UIScrollView拖到故事板上的视图控制器中。 将UIScrollView固定到整个视图。 配置内容视图 现在,在UIScrollView中创建一个名为ContentView的UIView。 这是我们所有内容的放置位置。 让我们将其固定到滚动视图! 关键的步骤到了。 再添加一个约束以消除那些令人讨厌的自动布局错误。 使内容视图与视图的宽度相等。 和繁荣,你完成了! 测试出来 内容视图中的所有视图应具有足够的约束,因此AutoLayout知道可以扩展多少内容大小。 我决定使用UIStackView来减少约束数量。 修复导航控制器中的填充 快速提示,如果您将此视图控制器嵌入到导航控制器中,则需要取消选中“视图控制器”中的“调整滚动视图插图”; 否则,您将获得额外的填充。 的GitHub 完整项目可在GitHub上获得

如何使用UIScrollView触发UITableViewCell中的滑动操作

最近,我想向UITableViewCells添加快速操作,而不是使用按钮而是使用平移手势,例如可以在许多邮件应用程序中找到的动作。 UIScrollView是最好和最简单的方法。 首先,您将看到如何在UITableViewCell中设置UIScrollView,以显示操作的自定义视图。 然后,您将看到如何通过实现UIScrollViewDelegate通过平移手势执行操作。 1. UITableViewCell设置 首先,创建UITableViewCell的子类。 容器视图将是我们的单元格内容。 动作视图和标签将是滚动显示的视图。 class SwipeCell: UITableViewCell { var scrollView: UIScrollView! var containerView: UIView! var actionView: UIView! var actionLabel: UILabel! } 在初始化程序中调用的方法中,我们实例化此视图并将其添加到视图层次结构中,如下所示: contentView 滚动查看 动作视图 动作标签 containerView 对于scrollView,我们要隐藏滚动指示器。 当用户结束拖动时,我们还希望快速减速。 注意,我们需要设置contentInset以便在scrollView的填充中显示actionView。 func setup() { scrollView = UIScrollView(frame: bounds) scrollView.autoresizingMask = [.flexibleWidth, .flexibleHeight] scrollView.contentSize = bounds.size scrollView.contentInset = UIEdgeInsets( top: 0, left: […]

UIScrollView:简介

在iOS上,很多场景都具有与UIScrollView相关的有效UI,甚至出色的UITableView和UICollectionView也在其顶部实现。 以下屏幕截图是App Store应用程序中UIScrollView用法的示例。 WWDC的一次演讲甚至提到App Store上超过80%的应用都在使用UITableView,UICollectionView或两者都使用。 UIScrollView是做什么的? 很容易实现UIScrollView提供的主要功能是使其子视图可滚动,因此用户可以在同一页面上查看更多/其他内容。 由于它在平坦表面上显示内容,因此自然可以水平和垂直滚动。 人们有时会忽略UIScrollView提供的另一个关键功能是“缩放”。 缩放可以帮助用户拥有更多内容,向他们展示更多详细内容。 摘要: UIScrollView可帮助用户轻松地与单个页面上的丰富内容进行交互。 滚动和缩放是它的两个功能动作。 阅读更多: UIScrollView:如何在代码中使用AutoLayout

双向滚动UITableViews

我已经知道您在想什么……这没有道理。 UITableView是通过垂直滚动来显示其内容的,为什么您要一个双向滚动呢? 当前,在Shine Labs,我们正在构建一个iPad应用程序,该应用程序使用具有非常宽内容的单元格来实现全屏UITableView。 随着开发的进行,客户希望该应用程序同时支持iPad多任务处理和iPhone。 为了做到这一点,我们需要采取一种对时间敏感且微创的方法来适应各种屏幕尺寸。 我们想出的解决方案非常简单,并允许我们重用整个现有的UI,并有一些小的警告。 通过在运行时将UITableView嵌入UIScrollView中,我们可以确定UITableView是否足够宽以容纳其所有内容。 如果没有,我们将其宽度增加一定程度,并使UIScrollView能够水平滚动。 让我们来看一个实际的例子。 在UIViewController的viewDidLoad方法中,我们配置UITableView和UIScrollView的布局。 为了配置布局,我们使用了自动布局抽象库SnapKit来使约束代码更加简洁。 私人 让 scrollView = UIScrollView() 私人 让 tableView = UITableView() 覆盖 func viewDidLoad(){ 超级 .viewDidLoad() configureConstraints() } 私人 功能 configureConstraints(){ view.addSubview(scrollView) scrollView.snp.makeConstraints { $ 0.edges.equalToSuperview() } scrollView.addSubview(tableView) 让 tableViewWidth = view.frame.width tableView.snp.makeConstraints { $ 0.edges.equalToSuperview() $ 0.height.equalTo(视图) $ 0.width.equalTo(tableViewWidth) } } 我们首先将scrollView边缘固定到视图。 然后,将tableView边缘固定到scrollView […]