簡體   English   中英

如何在iOS上橫向和縱向對齊圓形按鈕?

[英]How do I align circular buttons in a circle in both landscape and portrait orientations on iOS?

我想在iOS中以圓形圖案(一種五邊形)布局5個按鈕(具有圓形圖像)。 最終它也可以在iPad上運行,但是目前,我只是想使其在iPhone上運行。

到目前為止,我只是嘗試將它們放入UIView並使用約束通過IB進行布局。 但是,當我旋轉設備使其橫向顯示時,布局變得混亂。

這是我在IB中表示的那種布局的圖片,理想情況下應該適合iPhone縱向和橫向。

IB布局

如果我確定高度和寬度,對於iPhone來說顯然太大了:

固定的高度和寬度

我想我需要找到一種方法來使其長寬比保持為正方形並與父視圖的中間對齊。

如果我將水平和垂直空間限制在頂部布局指南中,則它看起來像這樣:

水平和垂直空間

我似乎無法正確地做到這一點。

任何朝着正確方向前進的想法和指示都將不勝感激。

非常感謝。

您需要更新您的方法,

邏輯:使用參數方程式獲取沿圓的圓周的點(按鈕中心),在屏幕旋轉時更新約束(獲取約束的出口以進行修改)。

這些公式將給出沿圓周的點(x,y)(按鈕的中心/按鈕的前導和頂部約束)

 x = cx + r * cos(a)
 y = cy + r * sin(a)

 Where,
 r is the radius, ( in your case half of screen size )
 cx,cy the origin, ( in your case centre of view )
 and a the angle from 0..2PI radians or 0..360 degrees. ( Angle between two buttons 360/5 because there are 5 buttons )

我已經在我開發的控件之一中使用了此公式。

https://github.com/AdityaDeshmane/iOSCircularMenu

檢查方法- (void)setButtonFrames以下文件中的- (void)setButtonFrames

https://github.com/AdityaDeshmane/iOSCircularMenu/blob/master/iOSCircularMenu/CustomCircularMenuControlFiles/ADCircularMenuViewController.m

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM