簡體   English   中英

圓形 UIButton

[英]Round UIButton

我想知道是否可以繪制圓形 UIButton(不是圓形矩形)。

當我在自定義類型的 UIButton 中添加圓形圖像時,它看起來像一個圓形按鈕。 但是在單擊按鈕的那一刻,按鈕的邊界變得可見,因此它看起來像一個方形按鈕,然后在單擊結束時再次看起來像一個圓形按鈕。
即使在點擊發生的那一刻,我也希望按鈕看起來像一個圓形按鈕。 這可能嗎?

測試代碼:

。H

    -(void)vijayWithApple; 

.m

   -(void)vijayWithApple{

            NSLog(@"vijayWithApple Called");
   }


UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

[button setImage:[UIImage imageNamed:@"Micky.png"] forState:UIControlStateNormal];

[button addTarget:self action:@selector(vijayWithApple) forControlEvents:UIControlEventTouchUpInside];

[button setTitle:@"Show View" forState:UIControlStateNormal];

button.frame = CGRectMake(135.0, 180.0, 40.0, 40.0);//width and height should be same value

button.clipsToBounds = YES;

button.layer.cornerRadius = 20;//half of the width

button.layer.borderColor=[UIColor redColor].CGColor;

button.layer.borderWidth=2.0f;

[self.view addSubview:button];

結果

在此處輸入圖像描述

只需創建兩個圓形按鈕圖像,一個用於按下 state,一個用於未按下。

在 IB 中,創建自定義類型的 UIButton。 Go 到您設置背景圖像的部分,並將“全部”的下拉菜單設置為正常 - 現在將圖像設置為未按下的圖像。

然后將下拉菜單更改為“已選擇”,然后放入您按下的圖像。

現在將填充類型更改為寬高比,並使按鈕為方形。 在任何地方用作普通 UIButton。 當然,您也可以通過類似的步驟(為 UIControlStateNormal 和 UIControlStateSelected 設置圖像)以編程方式輕松完成所有這些操作。

您可能必須為此創建一個自定義控件,但您真的需要一個圓形按鈕嗎?

每個平台都有其 UI 約定,iPhone 也不例外。 用戶希望按鈕是圓角矩形。

更新以回應評論:

如果我做對了,那么您不是在尋找圓形按鈕,而是在尋找可點擊(可觸摸)的圖像。

您可以使用UIImageView及其touchesBegan方法。

更新 2:

等一等。 我們在談論什么樣的單選按鈕? 出於某種原因,我以為你是在模仿真正的收音機。 如果您在談論單選按鈕組,請使用UISegmentedControlUIPicker

UIButton *but=[UIButton buttonWithType:UIButtonTypeCustom];

but.layer.cornerRadius=50;

借助本網站在 iPhone 上創建圓形按鈕。 您可以獲得許多自定義控件:)

http://www.cocoacontrols.com/controls

http://www.cocoacontrols.com/platforms/ios/controls/uiglossybutton

H@PPY 編碼!

謝謝和問候, Gautam Tiwari

根據我對 SDK 的了解(誠然,除了書籍/截屏教程之外,我幾乎沒有經驗),您必須創建自己的控件才能擁有單選按鈕。 關於如何在這個問題中實現它有一些建議。

也就是說,從用戶的角度來看,我覺得堅持使用本機控件會更好。 iPhone 用戶習慣於使用特定控件(即 UITableViews 或 UIPickerViews)進行此類交互。 偏離實際通用的 UI 慣例往往會使用戶體驗更加不和諧。

暫無
暫無

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

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