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

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

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

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

解決済

Swift scrollViewに配置したラベルの配置位置を指定したい

ataru2222
ataru2222

総合スコア230

Swift

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

1回答

0評価

0クリップ

113閲覧

投稿2022/06/19 14:25

実現したいこと

Swift scrollViewに配置したラベルの配置位置を指定したい

発生している問題・エラーメッセージ

スクロールビューの中の
タイトルラベルTitleLabelと
項目用のラベルLabel1があるのですが、

タイトルラベルの下に項目ラベルを設置したいのですが、
下記のコードではなぜか項目用のラベルのY軸の開始位置の値を何に設定しても0始まりとなってしまいます。

ピンクの位置にタイトルラベルが隠れており
この下に項目ラベルを設置したいです。

イメージ説明

該当のソースコード

Swift

import Foundation import UIKit class ViewController: UIViewController{ let menuView = UIView() let scrollView = UIScrollView() let view1 = UIView() let labelTitle = UILabel() let label1 = UILabel() override func viewDidLoad() { super.viewDidLoad() scrollViewAdd() viewAdd() labelAdd() } ///---------------------------------------------------------------------- /// レイアウト ///---------------------------------------------------------------------- //ScrollViewを追加する func scrollViewAdd() { scrollView.frame = CGRect(x: 0 , y: 0 , width: self.view.bounds.size.width * 1.0 , height: self.view.bounds.size.height * 0.75) scrollView.backgroundColor = UIColor.purple view.addSubview(scrollView) } //Viewを追加する func viewAdd() { menuView.frame = CGRect(x: 0 , y: 0 , width: self.view.bounds.size.width * 1.0 , height: self.view.bounds.size.height * 2.0) menuView.backgroundColor = UIColor.white scrollView.addSubview(menuView) scrollView.contentSize = menuView.frame.size //タイトル用view view1.frame = CGRect(x: 0 , y: 0 , width: self.view.bounds.size.width * 1.0 , height: self.view.bounds.size.height * 0.05) view1.backgroundColor = UIColor.systemPink menuView.addSubview(view1) } //ラベルを追加する func labelAdd() { //タイトル用のラベル labelTitle.frame = CGRect(x: 0 , y: 0 , width: self.view.bounds.size.width * 1.0 , height: self.view.bounds.size.height * 0.05) labelTitle.text = "タイトル1" view1.addSubview(labelTitle) //項目用のラベル1 label1.frame = CGRect(x: 0 , y: 0.5 //←★ここがY軸の開始位置 0.5(画面の中央)にしても0始まりの開始位置になる , width: self.view.bounds.size.width * 0.5 , height: self.view.bounds.size.height * 0.65) label1.text = "項目1" label1.backgroundColor = UIColor.systemBlue menuView.addSubview(label1) } }

試したこと

y軸の値を書き換えたり、
menuView.addSubview(label1)
scrollView.addSubview(label1)
View.addSubview(label1)

など試したのですが、全て開始位置は0,0となり、x軸もy軸も変化しませんでした。

コードでのレイアウトですが、scrollViewに設置したオブジェクトでも配置位置を指定する方法ご存知の方いらっしゃいましたらご教授願います。

宜しくお願いいたします。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

hoshi-takanori

2022/06/19 17:53

y: 0.5 ってことは y 座標が 0.5 ピクセル (画面の高さの 0.5 倍ではなく、1 ピクセルの半分) ってことですけど…。
ataru2222

2022/06/20 11:05

hoshi様 寝る前で完全に寝ぼけておりました(笑) 答え同じところに書いてあるのに、全く気づかずscrollViewのせいにしておりました(笑) いつも助けていただき、本当にありがとうございます。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Swift

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