teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正 

2016/09/13 11:41

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -6,4 +6,74 @@
6
6
  func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
7
7
  segmentControls.selectedSegmentIndex = Int(scrollView.contentOffset.x / scrollView.frame.maxX)
8
8
  }
9
+ ```
10
+
11
+
12
+ ★ 検証したコード
13
+
14
+ ```swift
15
+ import UIKit
16
+
17
+ class ViewController: UIViewController, UIScrollViewDelegate {
18
+
19
+ @IBOutlet weak var scrollView: UIScrollView!
20
+ @IBOutlet weak var headerView: UIView!
21
+
22
+ var segmentedControl: HMSegmentedControl!
23
+ var segmentControls: HMSegmentedControl!
24
+
25
+ var statusbarHeight: CGFloat = 20
26
+
27
+ var isTabSelected = false
28
+
29
+
30
+ override func viewDidLoad() {
31
+ super.viewDidLoad()
32
+
33
+ segmentedControl = HMSegmentedControl(frame: CGRectMake(0, statusbarHeight, self.view.frame.size.width, self.headerView.frame.size.height))
34
+ segmentedControl.selectionIndicatorColor = UIColor(red: 1.18, green: 1.80, blue: 1.53, alpha: 0.8)
35
+
36
+ segmentControls = HMSegmentedControl(frame: CGRectMake(0, statusbarHeight, self.view.frame.size.width, self.headerView.frame.size.height))
37
+ self.view.addSubview(segmentControls)
38
+
39
+ segmentControls.sectionTitles = ["ITEM ONE", "ITEM TWO", "ITEM THREE"]
40
+ // segmentControls.sectionImages = [UIImage(named: "star")!, UIImage(named: "home")!, UIImage(named: "search")!]
41
+ // segmentControls.sectionSelectedImages = [UIImage(named: "starSelected")!, UIImage(named: "homeSelected")!, UIImage(named: "searchSelected")!]
42
+ segmentControls.selectedSegmentIndex = 1
43
+
44
+ let blockVariable :IndexChangeBlock = {(index:Int) -> Void in
45
+
46
+ self.isTabSelected = true
47
+
48
+ let frame = CGRectMake(self.scrollView.frame.size.width * CGFloat(index), 0, self.scrollView.frame.size.width, self.scrollView.frame.size.height)
49
+ self.scrollView.scrollRectToVisible(frame, animated: true)
50
+ print(index)
51
+ }
52
+
53
+ segmentControls.indexChangeBlock = blockVariable
54
+
55
+ scrollView.pagingEnabled = true
56
+ scrollView.showsHorizontalScrollIndicator = false
57
+ scrollView.contentSize = CGSizeMake(self.view.frame.size.width * 3, self.scrollView.frame.size.height)
58
+ scrollView.delegate = self
59
+
60
+ let page1view = UIView(frame: CGRectMake(0, 0, self.view.frame.size.width, self.scrollView.frame.size.height))
61
+ page1view.backgroundColor = UIColor.blueColor()
62
+ self.scrollView.addSubview(page1view)
63
+
64
+ let page2view = UIView(frame: CGRectMake(self.view.frame.size.width, 0, self.view.frame.size.width, self.scrollView.frame.size.height))
65
+ page2view.backgroundColor = UIColor.redColor()
66
+ self.scrollView.addSubview(page2view)
67
+
68
+ let page3view = UIView(frame: CGRectMake(self.view.frame.size.width * 2, 0, self.view.frame.size.width, self.scrollView.frame.size.height))
69
+ page3view.backgroundColor = UIColor.greenColor()
70
+ self.scrollView.addSubview(page3view)
71
+ }
72
+
73
+ func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
74
+ segmentControls.selectedSegmentIndex = Int(scrollView.contentOffset.x / scrollView.frame.maxX)
75
+
76
+ }
77
+ }
78
+
9
79
  ```