iOS开发——UI篇Swift篇&UIScrollView

UIScrollView

 

 

  1     //返回按钮事件

  2     @IBAction func backButtonClick()

  3     {

  4         self.navigationController?.popViewControllerAnimated(true)

  5     }

  6     

  7     //创建滚动视图

  8     var mainScrollView:UIScrollView!

  9     

 10     var view1:UIView!

 11     var view2:UIView!

 12     var view3:UIView!

 13     

 14     //创建UIPageControl实例

 15     var pageCtrl:UIPageControl!

 16     

 17     override func viewDidLoad() {

 18         super.viewDidLoad()

 19         

 20         titleLabel.text = titleString

 21         

 22         

 23         // Do any additional setup after loading the view.

 24         

 25         //创建滚动视图

 26         mainScrollView = UIScrollView(frame: CGRectMake(20, 100, 300, 400))

 27         

 28         //设置背景色

 29         mainScrollView.backgroundColor = UIColor.grayColor()

 30         

 31         //添加到视图上

 32         self.view.addSubview(mainScrollView)

 33         

 34         //创建3个视图,添加到ScrollView上

 35         view1 = UIView(frame: CGRectMake(0, 0, 300, 400))

 36         view1.backgroundColor = UIColor.redColor()

 37         mainScrollView.addSubview(view1)

 38         

 39         

 40         view2 = UIView(frame: CGRectMake(300, 0, 300, 400))

 41         view2.backgroundColor = UIColor.greenColor()

 42         mainScrollView.addSubview(view2)

 43         

 44         view3 = UIView(frame: CGRectMake(600, 0, 300, 400))

 45         view3.backgroundColor = UIColor.blueColor()

 46         mainScrollView.addSubview(view3)

 47         

 48         //设置scrollView的容器大小

 49         mainScrollView.contentSize = CGSizeMake(300*3, 400)

 50         

 51         //设置滚动条风格

 52         mainScrollView.indicatorStyle = UIScrollViewIndicatorStyle.White

 53         

 54         

 55         

 56         //设置水平方向滚动条是否可见

 57         mainScrollView.showsHorizontalScrollIndicator = false

 58         

 59         //设置垂直方向滚动条是否可见

 60         mainScrollView.showsVerticalScrollIndicator = false

 61         

 62         //设置成翻页滚动

 63         mainScrollView.pagingEnabled = true

 64         

 65         mainScrollView.delegate = self

 66         

 67         

 68         mainScrollView.maximumZoomScale = 2.0;//允许放大2倍

 69         mainScrollView.minimumZoomScale = 0.5;//允许放大到0.5倍

 70         

 71         

 72         

 73         //页面控制器

 74         

 75         //创建UIPageControl实例

 76         pageCtrl = UIPageControl(frame: CGRectMake(20, 540, 300, 40))

 77         

 78         //添加到视图

 79         self.view.addSubview(pageCtrl)

 80         

 81         //设置总页数

 82         pageCtrl.numberOfPages = 3

 83         

 84         //当前显示到第几页面

 85         pageCtrl.currentPage = 0

 86         

 87         

 88         //添加事件

 89         pageCtrl.addTarget(self, action: "pageTurn:", forControlEvents: UIControlEvents.ValueChanged)

 90         

 91         

 92         

 93     }

 94 

 95     override func didReceiveMemoryWarning() {

 96         super.didReceiveMemoryWarning()

 97         // Dispose of any resources that can be recreated.

 98     }

 99     

100 

101     /*

102     // MARK: - Navigation

103 

104     // In a storyboard-based application, you will often want to do a little preparation before navigation

105     override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {

106         // Get the new view controller using segue.destinationViewController.

107         // Pass the selected object to the new view controller.

108     }

109     */

110 

111     

112     

113     

114     //MARK: - UIScrollViewDelegate

115     

116     func scrollViewDidScroll(scrollView: UIScrollView)

117     {

118         //视图滚动中一直触发

119     }

120 

121     func scrollViewWillBeginDragging(scrollView: UIScrollView)

122     {

123         //刚开始拖动视图时触发一次

124     }

125     

126     func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>)

127     {

128         //将要结束拖动触发一次

129     }

130     

131     func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool)

132     {

133         //拖动结束,触发一次

134     }

135     

136     func scrollViewWillBeginDecelerating(scrollView: UIScrollView)

137     {

138         //拖动接触后,开始减速

139     }

140     

141     func scrollViewDidEndDecelerating(scrollView: UIScrollView)

142     {

143         //减速完毕,恢复到静止状态

144         

145        //获取scrollView视图滚动的x坐标

146         var offX:CGFloat = scrollView.contentOffset.x

147         

148         //计算当前是第几屏

149         var index:Int = (Int)(offX / 300)

150         

151         //设置分页指示器currentPage值

152         pageCtrl.currentPage = index;

153     }

154     

155     

156     //缩放功能-返回缩放的视图

157     func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView?

158     {

159         //获取当前滚动视图移动的X坐标

160         var offsetX = scrollView.contentOffset.x

161         println(offsetX)

162         

163         

164         if offsetX == 0 //如果没有滚动,返回view1

165         {

166             return view1

167         }

168         else if offsetX == 300 //滚动300,返回view2

169         {

170             return view2

171         }

172         else if offsetX == 600 //滚动600,返回view3

173         {

174             return view3

175         }

176         

177         return nil

178     }

179     

180     

181     func scrollViewDidZoom(scrollView: UIScrollView)

182     {

183         //缩放过程中一直调用

184     }

185     

186     func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView!)

187     {

188         //开始缩放,调用一次

189     }

190     

191     func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView!, atScale scale: CGFloat)

192     {

193         //缩放结束,调用一次

194     }

195     

196     

197     func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView)

198     {

199         println("scrollViewDidEndScrollingAnimation")

200     }

201     

202     func scrollViewShouldScrollToTop(scrollView: UIScrollView) -> Bool

203     {

204         return false

205     }

206     

207     func scrollViewDidScrollToTop(scrollView: UIScrollView)

208     {

209         println("scrollViewDidScrollToTop")

210     }

211     

212     

213     

214     //MARK: - 

215     

216     //分页控制器value改变事件

217     func pageTurn(sender:AnyObject?)

218     {

219         //获取分页控制器

220 //        var newPageCtl = sender as UIPageControl

221         

222         //2015年5月2后修改

223         var newPageCtl = sender as! UIPageControl

224         

225         

226         //获取分页控制器当前页

227         var index = newPageCtl.currentPage

228         

229         //设置ScrollView的x移动距离

230         mainScrollView.contentOffset = CGPointMake((CGFloat)(300 * index), 0)

231     }

 

 

你可能感兴趣的:(uiscrollview)