2016-01-28 35 views
2

如何在UITextField的左側添加放大鏡圖標?將C轉換爲Swift:將放大鏡圖標添加到UITextField

我找到了類似問題here的答案,但我很難將其轉換爲swift。

答案:

所以,這裏是用Unicode字符代碼:

UILabel *magnifyingGlass = [[UILabel alloc] init]; 
[magnifyingGlass setText:[[NSString alloc] initWithUTF8String:"\xF0\x9F\x94\x8D"]]; 
[magnifyingGlass sizeToFit]; 

[textField setLeftView:magnifyingGlass]; 
[textField setLeftViewMode:UITextFieldViewModeAlways]; 

編輯:對於普通的外觀,適合的iOS 7的風格,添加的Unicode變化選擇\ U000025B6。

我的代碼:

let searchIconView = UILabel() 
// Doesn't work: searchIconView.text = NSString.init(UTF8String: "\xF0\x9F\x94\x8D") 
searchIconView.sizeToFit() 
searchTextField.leftView = searchIconView 
searchTextField.leftViewMode = .Always 

回答

2

兩個簡單的方法:

  1. 您可以使用Xcode中添加到代碼中的Unicode符號直接(編輯 - >表情符號&)。
  2. 您可以使用類似的東西

    searchIconView.text =的NSString(unicodeScalarLiteral: 「\∪{} D83D」)作爲字符串

(你要在這裏用你的角色)

2

你有試圖添加圖標作爲UTF8String的具體原因嗎?如果你有一個放大鏡圖標作爲PNG圖像,你可以像這樣使用UITextField的「leftView」屬性;

let imageView = UIImageView() 
let magnifyingGlassImage = UIImage(named: "magnifyingGlass") 
imageView.image = magnifyingGlassImage 
//arrange the frame according to your textfield height and image aspect 
imageView.frame = CGRect(x: 0, y: 5, width: 45, height: 20) 
imageView.contentMode = .ScaleAspectFit 
txtField.leftViewMode = .Always 
txtField.leftView = imageView 
3

在斯威夫特你可以指定表情符直接

searchIconView.text = "" 
+0

我怎樣才能得到這個圖標的平/平的版本? (比如iOS 9的默認設置) – Code

+0

您可以使用任何Unicode字符。只需從角色面板中複製並粘貼即可。 – vadian