首页 理论教育 UIPageControl为应用程序添加水平和垂直布局

UIPageControl为应用程序添加水平和垂直布局

时间:2023-06-23 理论教育 版权反馈
【摘要】:从Object Library中拖出水平UIStackView或垂直UIStack View,并将UIStackView放在所需的位置。2.UIPageControl一个显示一系列水平点的控件,每个点对应于应用程序文档或其他数据模型中的页面。外部使用者可以通过currentPage属性以确定要显示的页面,UIPageControl在任一方向上仅前进一页,当前查看的页面由白点表示。滚动视图跟踪手指的移动并相应地调整origin,在滚动视图中显示其内容视图,根据新origin绘制其自身的一部分,该origin固定在内容视图中的某个位置。

UIPageControl为应用程序添加水平和垂直布局

还有些控件在应用中使用得较少,所以不做详细的解释,仅在这里简单地罗列。

1.UIStackView

一个用于在列或行中布置视图集合的简化界面。通过UIStackView,开发者可以利用自动布局的强大功能,创建可以动态适应不同设备方向、屏幕大小和可用空间的用户界面。UIStackView管理其属性arrangeSubviews中所有视图的布局,这些视图沿着UIStackView的轴方向排列,基于它们在arrangeSubviews数组中的顺序。确切的布局取决于UIStackView的轴方向、分布、对齐,间距和其他属性。

要使用UIStackView,需要打开Storyboard。从Object Library中拖出水平UIStackView或垂直UIStack View,并将UIStackView放在所需的位置。接下来,拖出UIStackView的内容,将视图或控件放入UIStackView。开发者可以根据需要继续向UIStackView添加视图和控件,Interface Builder会根据其内容调整UIStackView的大小。开发者还可以通过在Attributes Inspector中修改UIStackView的属性来调整堆栈内容的外观。

需要注意的是,开发者负责定义UIStackView的位置和大小(可以不用定义),UIStackView管理其内容的布局和大小。

2.UIPageControl

一个显示一系列水平点的控件,每个点对应于应用程序文档或其他数据模型中的页面。有关页面控件的示例,我们可以查看iPhone中的天气应用程序,将其配置为显示多个城市的天气信息。当用户点击“UIPageControl”以移动到下一页或上一页时,控件发送valueChanged事件以供外部使用者进行处理。外部使用者可以通过currentPage属性以确定要显示的页面,UIPageControl在任一方向上仅前进一页,当前查看的页面由白点表示。根据设备的不同,在被裁切之前屏幕上会显示一定数量的点。

3.UIScrollView (www.xing528.com)

一个允许滚动和缩放其包含视图的视图。UIScrollView是几个UIKit类的超类,包括下面要讲述的UITableView和已经讲述的UITextView。

UIScrollView(或称为滚动视图)的核心概念在于它是一个origin(可在内容视图上调整的视图)。它将内容视图裁剪到其frame中,该frame通常与应用程序主窗口的内容重合。滚动视图跟踪手指的移动并相应地调整origin,在滚动视图中显示其内容视图,根据新origin绘制其自身的一部分,该origin固定在内容视图中的某个位置。除了显示垂直和水平滚动指示器,滚动视图本身不显示绘图。滚动视图必须知道内容视图的大小,以便知道何时停止滚动;默认情况下,当滚动超出内容范围时,它会反弹。

管理滚动视图中显示内容绘制的实例为了不让视图超出屏幕大小,会平铺内容的子视图。当用户在滚动视图中进行滚动操作时,此实例应根据需要添加或删除子视图。因为滚动视图没有滚动条,所以它必须知道触摸是否表示滚动来跟踪内容中的子视图;为了能够判断这些触摸,它通过在计时器触发到计时器失效之间短暂的拦截触碰事件,查看触摸手指是否进行任何移动。如果计时器触发之后,触摸事件没有显著的位置变化,则滚动视图将跟踪事件转发到内容视图中被触摸的子视图;而如果用户在计时器失效之前将手指滑动得足够远,则滚动视图会取消子视图中的任何跟踪并执行滚动操作。UIScrollView的子类可以覆盖touchesShouldBegin(_:with:in :)、isPagingEnabled和touchesShouldCancel(in :)方法(由滚动视图调用),以影响滚动视图处理滚动手势的方式。

滚动视图还处理内容的缩放和平移。当用户进行放大或收缩的手势时,滚动视图调整内容的偏移和缩放;当手势结束时,管理内容视图的对象应该根据需要更新内容的子视图。需要注意的是,手势结束了,但手指仍然可以停留在屏幕上;当手势正在进行时,滚动视图不会向子视图发送任何跟踪调用。

UIScrollView类可以设置一个满足UIScrollViewDelegate协议的委托实例。要使缩放和平移能够工作,委托必须同时实现viewForZooming(in :)和scrollViewDidEndZooming(_:with:atScale :)方法。此外,最大(maximumZoomScale)和最小(minimumZoomScale)的缩放比例必须不同。

4.UISearchBar

用于从用户获取搜索相关信息的控件。UISearchBar提供用于输入文本的UITextField、搜索按钮、书签按钮和取消按钮。搜索栏实际上不执行任何搜索,开发者可以使用满足UISearchBarDelegate协议的委托实例来实现输入文本和单击按钮时的操作。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈