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

質問編集履歴

4

解決方法を追記

2017/06/14 22:30

投稿

KazutakaShimizu
KazutakaShimizu

スコア157

title CHANGED
File without changes
body CHANGED
@@ -98,8 +98,37 @@
98
98
  どんたか教えていただけると大変助かります。よろしくお願い申し上げます。
99
99
 
100
100
  【追記】
101
-
102
101
  MenuBarViewCellのsetUpUi()内のUILabel(frame: self.frame)部分の記述を
103
102
  UILabel(frame: self.bounds)に切り替えたところ表示はされるが
104
103
  素早くスクロールすると一つのセルの中に複数のメニューのタイトルが重なって表示されてしまうようになりました。
105
- ![イメージ説明](75fa02175066ce7b69037cccfa546bb0.gif)
104
+ ![イメージ説明](75fa02175066ce7b69037cccfa546bb0.gif)
105
+
106
+ 【解決方法】
107
+ MenuBarViewCellの記述を下記のようにして、addSubViewが呼び出されるのを一度だけにしたところなおりました。
108
+
109
+ ```swift
110
+ class MenuBarViewCell: UICollectionViewCell {
111
+ var isCompletedSetUpUI: Bool = false
112
+ var title:String!{
113
+ didSet{
114
+ if !isCompletedSetUpUI {
115
+ setUpUi()
116
+ }
117
+ }
118
+ }
119
+
120
+ override func awakeFromNib() {
121
+ super.awakeFromNib()
122
+ }
123
+
124
+ private func setUpUi(){
125
+ self.backgroundColor = .white
126
+ var label = UILabel(frame: self.bounds)
127
+ print(title)
128
+ label.text = title
129
+ label.textAlignment = .center
130
+ self.contentView.addSubview(label)
131
+ isCompletedSetUpUI = true
132
+ }
133
+ }
134
+ ```

3

MenuBarViewCellのソースコードの修正

2017/06/14 22:30

投稿

KazutakaShimizu
KazutakaShimizu

スコア157

title CHANGED
File without changes
body CHANGED
@@ -73,8 +73,6 @@
73
73
  ```swift
74
74
  //MenuBarViewで表示しているcollectionViewCell
75
75
  class MenuBarViewCell: UICollectionViewCell {
76
- @IBOutlet var label: UILabel!
77
- var text: UILabel!
78
76
  var title:String!{
79
77
  didSet{
80
78
  setUpUi()
@@ -87,7 +85,7 @@
87
85
 
88
86
  private func setUpUi(){
89
87
  self.backgroundColor = .white
90
- label = UILabel(frame: self.frame)
88
+ var label = UILabel(frame: self.bounds)
91
89
  label.text = title
92
90
  label.textColor = .black
93
91
  label.textAlignment = .center

2

追加のバグを追記

2017/06/13 06:52

投稿

KazutakaShimizu
KazutakaShimizu

スコア157

title CHANGED
File without changes
body CHANGED
@@ -97,4 +97,11 @@
97
97
  ```
98
98
 
99
99
  足りてない情報等ございましたら、お手数ですがコメントをください。
100
- どんたか教えていただけると大変助かります。よろしくお願い申し上げます。
100
+ どんたか教えていただけると大変助かります。よろしくお願い申し上げます。
101
+
102
+ 【追記】
103
+
104
+ MenuBarViewCellのsetUpUi()内のUILabel(frame: self.frame)部分の記述を
105
+ UILabel(frame: self.bounds)に切り替えたところ表示はされるが
106
+ 素早くスクロールすると一つのセルの中に複数のメニューのタイトルが重なって表示されてしまうようになりました。
107
+ ![イメージ説明](75fa02175066ce7b69037cccfa546bb0.gif)

1

画像を変更

2017/06/13 06:45

投稿

KazutakaShimizu
KazutakaShimizu

スコア157

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,9 @@
1
1
  現在iosアプリを作っており、collectionViewを使った無限にスクロールできるメニューを実装しようとしています(メルカリのカテゴリメニューのようなものです)
2
2
  collectionViewのセル一つ一つがメニューとなっていて
3
3
  ここにメニューのタイトルを入れようとすると下記のようにうまく表示されません。
4
- ![イメージ説明](33f752629ac7435735b7e9bac21b76c3.gif)
4
+ ![イメージ説明](b3906eacd9abf9d5c59bb60ff48761c7.gif)
5
5
 
6
- 文字列ではなくセルの背景色をセルごとに変えようとするとうまくいきます。
6
+
7
- ソースコードは下記になります。
8
7
  ```swift
9
8
  //メニュー部分全体のView
10
9
  class MenuBarView: UIView {
@@ -15,7 +14,10 @@
15
14
  super.init(frame: frame)
16
15
  setUpCollectionView()
17
16
  }
18
-
17
+ ![
18
+
19
+ 文字列ではなくセルの背景色をセルごとに変えようとするとうまくいきます。
20
+ ソースコードは下記](358ec05119a0e16055670e7bdfef2f88.gif)
19
21
  required init?(coder aDecoder: NSCoder) {
20
22
  fatalError("init(coder:) has not been implemented")
21
23
  }