2015-09-23 97 views
0

我的代碼是我的UIButton。我應該在CGRectMake中更改哪些內容以將我的UIButton設置在所有屏幕尺寸的屏幕中央?如何在Swift中居中放置UIButton?

let loginBtn = UIButton(frame: CGRectMake(60, 360, 240, 40)) 
loginBtn.layer.borderColor = UIColor.whiteColor().CGColor 
loginBtn.layer.borderWidth = 2 
loginBtn.titleLabel!.font = UIFont.systemFontOfSize(24) 
loginBtn.tintColor = UIColor.whiteColor() 
loginBtn.setTitle("Login", forState: UIControlState.Normal) 
self.view.addSubview(loginBtn) 
+4

使用自動版式中心x和25%。 – Fogmeister

+0

我想知道它在代碼中不是自動佈局 –

+4

您可以在代碼中進行自動佈局。如果你不使用/學習自動佈局,那麼你會被拋在後面。查找自動佈局教程並使用它。 :-) – Fogmeister

回答

5

對於您的觀點你的地方UIButton的中心,更新您的cgrectmake作爲bleow ..

CGRectMake((self.view.frame.size.width - 240)/2, (self.view.frame.size.height - 40)/2,240,40) 

您可以將您的代碼之後添加一行

loginBtn.center = self.view.center 

對於註冊按鈕:

signup.frame = loginBtn.bounds 
signup.center = CGPointMake(loginBtn.center.x, loginBtn.center.y + loginBtn.frame.size.height + 10) 
+0

謝謝,我試過後添加簡單的代碼我的代碼和它的工作:) –

+0

但我現在必須有按鈕,一個用於登錄,另一個用於註冊,並且代碼使其位於中心,因此如何使登錄按鈕下方的註冊按鈕位於登錄按鈕的下方? –

3

設置你的UIButtoncenterview它是在市中心

loginBtn.center = view.center 
+1

框架也有一個屬性叫做midX和midY –

+0

謝謝@LeoDabus。不知道那個屬性。 –

+1

超級視圖可能也有一個'center'屬性'loginBtn.center = view。中心' – Wez

1

這將中心的按鈕在整個屏幕上,而不是僅僅認爲它在:

let verticalCenter: CGFloat = UIScreen.mainScreen().bounds.size.height/2.0 
let horizontalCenter: CGFloat = UIScreen.mainScreen().bounds.size.width/2.0 

loginBtn.center = CGPoint(x: horizontalCenter, y: verticalCenter) 

編輯:

由於@LeoDabus指出的那樣,這可以通過使用midXmidY性能上CGRect壓實:

let verticalCenter: CGFloat = UIScreen.mainScreen().bounds.midY 
let horizontalCenter: CGFloat = UIScreen.mainScreen().bounds.midX 
+3

界限有一個名爲midX和midY的屬性。 –

+0

你能鏈接一個參考嗎?我在這裏找不到這些屬性:https://developer.apple.com/library/prerelease/ios/documentation/GraphicsImaging/Reference/CGGeometry/index.html#//apple_ref/c/func/CGRectGetMinX –

+0

http:///nshipster.com/cggeometry/對不起,我找不到在蘋果公司的網站 –

1

您需要添加之前self.view.addSubview(loginBtn)以下行。

loginBtn.center = self.view.center 
+0

但我現在必須按鈕,一個用於登錄,另一個用於註冊,並且代碼使其位於中心,因此如何使登錄按鈕下方的註冊按鈕位於登錄按鈕的下方? –

0

的SWIFT 4

@IBOutlet weak var btStart: UIButton! 

上的任何屏幕的中間(任意設備)

btStart.center = self.view.center 

OR

btStart.center.x = self.view.center.x 
btStart.center.y = self.view.center.y 

從頂部

btStart.center.x = self.view.center.x 
btStart.center.y = self.view.center.y/2 
相關問題