2013-04-07 59 views
3

使用標籤作爲按鈕時遇到了一些問題。我定義爲一個UILabel標籤,並宣佈該字符串變量在我的.h文件:使用標籤作爲按鈕 - 觸摸標籤時,將值分配給字符串

IBOutlet UILabel *l1; 

@property(strong)NSString *myvariable; 

在XIB,帶標籤的選擇,在身份檢查視圖,文檔下,標籤字段與所需的標籤名稱已設置 - 例如:l1。標籤中還有一些靜態文本。

在文件的所有者連接檢查器中,我將l1 Outlet連接到l1標籤。

我的目標:當標籤被觸摸時,我想簡單地指定一個字符串變量與文字值,如什麼可能在.m文件來完成:

self.myvariable = l1.text; 

的事情,我有失敗嘗試: - 在我的.h中設置UIButton, - 嘗試在.m 中設置UIButton - 在XIB Identity Inspector視圖中的Accessibility下,嘗試檢查按鈕Traits複選框以將標籤啓用爲按鈕

我還沒弄明白。這可能是一個簡單的標籤問題,我對標籤的大部分體驗包括靜態文本顯示,或使用紀元時間顯示基於當前日期的倒計時。任何指導將不勝感激!

在此先感謝! 羅布

回答

6

環顧四周,大多數人推薦使用實際的按鈕,並設置背景透明或背景顏色。

這就是說,你可以這樣做:

在viewWillLoad:

UILabel * label = [[UILabel alloc] init]; // change/delete to use your obj 

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pushAction)]; 
[label addGestureRecognizer:tap]; 
label.userInteractionEnabled = YES; 

然後設置選擇:

- (void) pushAction 
{ 
    self.myvariable = l1.text; 
} 
+0

謝謝,我今晚會試試這個,看看我是怎麼做的,我會回覆我的結果。關於使用實際的按鈕,我在標籤上有相當數量的文本 - 也許我可以使用按鈕,並設置自動換行。現在,我將label.text分配給變量的值。我不確定是否有方法獲取按鈕上的文本,然後將其設置爲變量的值,但我應該也可以手動設置它。謝謝! Rob – user1362308 2013-04-07 21:55:38

+0

THanks Matto,我試圖讓上面的例子工作,但沒有成功。但是,我使用實際的按鈕而不是標籤,並且運行良好!我唯一希望的是我可以指定按鈕所具有的任何內容文本(類似於 - self.myvariable = mybutton.text),而不是在按鈕中包含文本,然後在設置變量時再次顯示文本但對於使用實際按鈕的建議看起來像是要走的路線!謝謝! Rob – user1362308 2013-04-08 00:55:25

+0

@ user1362308嗨,Rob,我很驚訝它不適合你,我不確定你是否期待追求這個或不是,但如果你是,我會檢查你是否正在加載xib文件(聽起來是這樣),並且標籤是鏈接的。「l1.userInteractionEnabled = YES;」是手勢識別器工作的關鍵無論如何,如果你想知道如何讓它以另一種方式工作,請隨時響應。 – matto0 2013-04-08 01:29:07

0

你可以創建一個自定義類擴展UILabel,它覆蓋

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;

您可以分配新的自定義的UILabel廈門國際銀行中的身份檢查。

+0

謝謝,今晚我會試試這個,看看我是怎麼做的,我會回覆我的結果 - 謝謝! Rob – user1362308 2013-04-07 21:49:06

+0

謝謝,我試圖讓這個工作,但我無法得到這個工作。儘管我欣賞你的建議!最後,我決定使用一個實際的按鈕並擺脫標籤。 – user1362308 2013-04-08 00:56:23

0
UILabel *lblname  = [[ UILabel alloc]initWithFrame: CGRectMake(10, 120, 200, 35)]; 
lblname.text   = @"sunil"; 
lblname.textColor  = [UIColor blueColor]; 
lblname.textColor  = [UIColor blueColor]; 
lblname.backgroundColor = [UIColor orangeColor]; 
[self.view addSubview:lblname]; 

UIButton *btnpress  = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
btnpress.frame   = CGRectMake(10, 180, 300, 20); 
[btnpress setTitle:@"click" forState:UIControlStateNormal]; 
[btnpress addTarget:self action:@selector(btnpress1) forControlEvents:UIControlEventTouchUpInside]; 
btnpress.backgroundColor = [UIColor redColor]; 
[self.view addSubview:btnpress]; 
0

我想讓我的整個屏幕一個按鈕,當按下時改變按鈕上出現的標籤上的文字。這就是我在xcode上做的:

在故事板中,我將一個按鈕拖到界面上。在編輯按鈕的右上角,我將按鈕內容設置爲「組」而不是文本。不要將按鈕上的alpha設置爲0。然後,我在按鈕/組頂部拖動了一個標籤。當按住Ctrl拖動必要的動作和插座時,一定要通過暴露故事板的左側面板來完成。在更改按鈕內容類型後,您可能只能通過鼠標訪問該組。

+0

這不是一個ñ答案,刪除它或它將被放在適度。 – 2015-03-17 22:11:30

相關問題