我有一个UIViewController包含两个较小的视图:mapView
和imageView
一个放在另一个之上:
我想改变它,所以当用户打开这个视图控制器时,他会看到下面的地图和虚线元素,如下所示:
但它应该只引用页面上的那两个元素 - 当用户来回滑动时,其余元素应保持不变。
我看到一些教程将这些点放在屏幕的最底部,然后整个屏幕都可以滚动,但只有页面上选定的组件才可以实现吗?
答案 0 :(得分:1)
使用滚动视图,如上所述启用分页 -
您的类应该是UIScrollViewDelegate的子类 您将需要滚动视图的IBOutlet。 (比如滚动)
在viewDidLoad中 -
//First set frame and content size for scroll view.
scroll.frame = CGRectMake(0, 0, self.view.frame.width, 120)
scroll.delegate = self
scroll.contentSize = CGSizeMake(self.view.frame.width * 2, 120)
//Then create your imageView and mapView and add them to the scroll view.
let imgView = UIImageView(frame: CGRectMake(0, 0, scroll.frame.width, 100))
//Do whatever changes you want in the imgView
scroll.addSubview(imgView)
let viewForMap = UIMapView(frame: CGRectMake(scroll.frame.width, 0, scroll.frame.width, 100))
//Do whatever changes you want in the viewForMap
scroll.addSubview(viewForMap)
var pageControl : UIPageControl = UIPageControl(frame: CGRectMake(self.view.center.x - 20, 100, 40, 20))
pageControl.numberOfPages = n //2 in your case
pageControl.currentPage = 0 //For initial page
pageControl.pageIndicatorTintColor = UIColor.grayColor()
pageControl.currentPageIndicatorTintColor = UIColor.whiteColor()
view.addSubview(pageControl)
要在页面控件上显示当前页面指示符,您需要 -
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
let pageNumber = round(scrollView.contentOffset.x / scrollView.frame.size.width)
pageControl.currentPage = Int(pageNumber)
}
如果您按照上述内容进行适合您的任何更改,您可以开发出您想要的内容。 希望这会有所帮助。
答案 1 :(得分:0)
UIScrollView
pagingEnabled
用于滚动,UIPageControl
用于显示"虚线元素"如你所说。