2017-07-28 8 views
1

私はのUITextFieldを中心にしようとしています、これは私のコードです:センターUITextFieldの

import SpriteKit 
import GameplayKit 
import UIKit 

class GameScene: SKScene { 

var sampleTextField = UITextField() 

override func didMove(to view: SKView) { 

    let mainView = UIView(frame: CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height)) 

    view.addSubview(mainView) 

    sampleTextField = UITextField(frame: CGRect(origin: mainView.center, size: CGSize(width: 200, height: 20))) 

    sampleTextField.placeholder = "Enter text here" 
    sampleTextField.font = UIFont.systemFont(ofSize: 15) 
    sampleTextField.borderStyle = UITextBorderStyle.roundedRect 
    sampleTextField.autocorrectionType = UITextAutocorrectionType.no 
    sampleTextField.keyboardType = UIKeyboardType.default 
    sampleTextField.returnKeyType = UIReturnKeyType.done 
    sampleTextField.clearButtonMode = UITextFieldViewMode.whileEditing; 
    sampleTextField.contentVerticalAlignment = UIControlContentVerticalAlignment.center 

    mainView.addSubview(sampleTextField) 
    } 

} 

しかし、私はそれが画面の外にあると思うので、UITextFieldには表示されませんので、どのように私はそれを中央にできましたスクリーン? CGRectのorginが左上に常にある

sampleTextField.center = CGPoint(x: value1, y: value2) 
+0

私はSpriteKitを使ったことがありませんが、あなたのコードではautolayoutを使用していますか? –

+0

いいえ私は自動レイアウトを使用していません –

+0

おそらく、あなたは関数の先頭にデバッグポインタを置いて、関数が呼び出されたときにSKViewのサイズを調べて、SKViewがされていないことを確認できますまだ適切に配置されています。 –

答えて

1

はセンター方式を使用してみてくださいコーナー。中心点の幅と高さの半分を引く必要があります。

+0

何らかの理由で、x:300、y:550に中心を設定すると、画面のサイズが実際には高さが750、高さが1334のときに右下にTextFieldが表示されます。なぜこれが起こるのですか? –

+1

あなたはview.centerを渡せませんか?あなたのビューの中にテキストフィールドだけを集中させたいのですか? –

+0

はい、なぜ私はそれを試していないのか分からない、ありがとう –

1

の代わりに...

sampleTextField = UITextField(frame: CGRect(origin: mainView.center, size: CGSize(width: 200, height: 20))) 

これを行う..

sampleTextField = UITextField(frame: CGRect(origin: CGPoint(x: mainView.center.x - 100, y: mainView.center.y - 10), size: CGSize(width: 200, height: 20))) 

- :