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

回答編集履歴

1

修正

2016/08/25 00:18

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -1,13 +1,70 @@
1
- の部分に質問のコードを記述されているのか分からないですが、テーブルのheaderViewにセットする直前におこっていますか?
1
+ おそらくView生成(サブクラスなのか?)、画面遷移部分のコードをないんとも言えなと思います
2
+ ※ gifを見てもおそらく`Navigation`の`Push遷移`では無い気がしました。
2
3
 
3
- あと遅れるといだと、メインスレッドで実行されてない可能性あるで以下のよう記述して試してみてください。
4
+ うとおもます、ベースViewheaderViewを乗せ画面遷移せるコードを書てみました
5
+ 普通のpushの遷移でしたら角丸が消えることは無いです。
4
6
 
5
7
  ```swift
6
- dispatch_async(dispatch_get_main_queue(),{
7
8
 
8
- let gradationColors = [UIColor.myGradationStartColor().CGColor, UIColor.myGradationEndColor().CGColor]
9
- headerGradationLayer.colors = gradationColors
9
+ import UIKit
10
- headerView.layer.insertSublayer(headerGradationLayer, atIndex: 0)
11
10
 
11
+ class ViewController: UIViewController {
12
+
13
+ override func viewDidLoad() {
14
+
15
+ super.viewDidLoad()
16
+ let screenWidth = UIScreen.mainScreen().bounds.width
17
+ let baseView = UIView(frame: CGRect(x: 0, y: 20, width: screenWidth, height: 100))
18
+ baseView.backgroundColor = UIColor.yellowColor()
19
+ view.addSubview(baseView)
20
+
21
+ let headerView = UIView(frame: CGRect(x: 10, y: 10, width: screenWidth - 20, height: 80))
22
+ headerView.backgroundColor = UIColor.blueColor()
23
+ headerView.layer.cornerRadius = 10
24
+ headerView.layer.masksToBounds = true
25
+ baseView.addSubview(headerView)
26
+
27
+ let button = UIButton(frame: CGRect(x: 10, y: 20, width: 100, height: 50))
28
+ button.setTitle("Next", forState: .Normal)
29
+ button.addTarget(self, action: #selector(self.pusuButton(_:)), forControlEvents: .TouchUpInside)
30
+ baseView.addSubview(button)
31
+
12
- })
32
+ }
33
+
34
+ func pusuButton(sender: UIButton) {
35
+ let next = ViewController1()
36
+ self.navigationController?.pushViewController(next, animated: true)
37
+ }
38
+ }
39
+
40
+
41
+ class ViewController1: UIViewController {
42
+
43
+ override func viewDidLoad() {
44
+ super.viewDidLoad()
45
+
46
+ view.backgroundColor = UIColor.whiteColor()
47
+
48
+ let screenWidth = UIScreen.mainScreen().bounds.width
49
+ let baseView = UIView(frame: CGRect(x: 0, y: 20, width: screenWidth, height: 100))
50
+ baseView.backgroundColor = UIColor.yellowColor()
51
+ view.addSubview(baseView)
52
+
53
+ let headerView = UIView(frame: CGRect(x: 10, y: 10, width: screenWidth - 20, height: 80))
54
+ headerView.backgroundColor = UIColor.blueColor()
55
+ headerView.layer.cornerRadius = 10
56
+ headerView.layer.masksToBounds = true
57
+ baseView.addSubview(headerView)
58
+
59
+ let button = UIButton(frame: CGRect(x: 10, y: 20, width: 100, height: 50))
60
+ button.setTitle("Back", forState: .Normal)
61
+ button.addTarget(self, action: #selector(self.pusuButton(_:)), forControlEvents: .TouchUpInside)
62
+ baseView.addSubview(button)
63
+
64
+ }
65
+
66
+ func pusuButton(sender: UIButton) {
67
+ self.navigationController?.popViewControllerAnimated(true)
68
+ }
69
+ }
13
70
  ```