2016-01-28 37 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