質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

225閲覧

UIscrollViewにfor文を追加してLabelを貼りたいが最後のしか出てこない

kazukiikegami

総合スコア19

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/09/20 10:44

編集2018/09/21 00:33

前提・実現したいこと

UIscrollViewにfor文を使って文字を並べて表示させるため下記のようなプログラムを書いたのですが、なぜか最後の文字しか表示されずそれまでの文字は表示されません。どうしてでしょうか

該当のソースコード

swift

1 scrollView.backgroundColor = UIColor.clear 2 // 表示窓のサイズと位置を設定 3 scrollView.frame.size = CGSize(width:width, height:height-height*118/1136) 4 scrollView.center = CGPoint(x: width/2, y: height/2+height*59/1136) 5 // 中身の大きさを設定 6 scrollView.contentSize = CGSize(width: width, height:height*12320/1136) 7 // スクロールの跳ね返り 8 scrollView.bounces = false 9 // スクロールバーの見た目と余白 10 scrollView.indicatorStyle = .white 11 scrollView.scrollIndicatorInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10) 12 // ScrollViewの中身を作る 13 setstage() 14 self.view.addSubview(scrollView)

swift

1//setstage内 2 rectlabel[count].text = String(count+1) 3 rectlabel[count].font = UIFont(name: "SourceHanSans-Bold", size: width*45/640) 4 rectlabel[count].sizeToFit() 5 rectlabel[count].textColor = UIColor.black 6 rectlabel[count].center = CGPoint(x:rx,y:ry) 7 scrollView.addSubview(rectlabel[count])

countを増やしていくことによりいくつかのlabelを描画しています
rxやryなどは正しい値になっていることは確認済みです
###バージョン
swift4
###補足

swift

1var rectlabel:[UILabel] = [] 2let samplelabel = UILabel.init() 3 //viewDidLoad()内 4rectlabel = Array(repeating: samplelabel, count: 500)

文字だけでなくlabel自体が表示されていないです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2018/09/21 00:18

rectlabelの生成コードを書いて下さい。
fuzzball

2018/09/21 00:20 編集

「文字が表示されない」というのは、ラベルは表示されるけど文字(テキスト)が表示されないという意味でしょうか?それともラベル自体が表示されないのでしょうか?
guest

回答1

0

ベストアンサー

print(rectlabel)してみれば分かりますが、その生成コードでは全て同じインスタンスになってしまいます。

swift

1for _ in 0..<500 { 2 rectlabel.append(UILabel()) 3}

などとして、異なるインスタンスを生成して下さい。

投稿2018/09/21 00:42

編集2018/09/21 00:52
fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazukiikegami

2018/09/21 00:56

上記のコードはどこに入れれば良いでしょうか?
kazukiikegami

2018/09/21 01:11

viewDidLoad内のrectlabel = Array(repeating: samplelabel, count: 500)に変えて試したところできました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問