我想弄清楚如何在我的應用程序中向我的UISearchBar添加1像素筆觸灰色邊框。 Facebook Messenger應用程序很好地完成了這項工作。 (見下圖)。如何添加圍繞UISearchBar的1像素灰色邊框TextField
我知道有一個UISearchBar的背景圖像屬性,但我認爲這不是正確的使用方法,因爲它將圖像拉伸並在整個搜索欄中重複顯示。
我非常感謝在正確的方向指針。
我想弄清楚如何在我的應用程序中向我的UISearchBar添加1像素筆觸灰色邊框。 Facebook Messenger應用程序很好地完成了這項工作。 (見下圖)。如何添加圍繞UISearchBar的1像素灰色邊框TextField
我知道有一個UISearchBar的背景圖像屬性,但我認爲這不是正確的使用方法,因爲它將圖像拉伸並在整個搜索欄中重複顯示。
我非常感謝在正確的方向指針。
試試這個代碼:
//First add the following import and macro:
#import <QuartzCore/QuartzCore.h>
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
//Then change yourSearchBar border:
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{
for (id object in [[[yourSearchBar subviews] objectAtIndex:0] subviews])
{
if ([object isKindOfClass:[UITextField class]])
{
UITextField *textFieldObject = (UITextField *)object;
textFieldObject.layer.borderColor = [[UIColor grayColor] CGColor];
textFieldObject.layer.borderWidth = 1.0;
break;
}
}
}
else
{
for (id object in [yourSearchBar subviews])
{
if ([object isKindOfClass:[UITextField class]])
{
UITextField *textFieldObject = (UITextField *)object;
textFieldObject.layer.borderColor = [[UIColor grayColor] CGColor];
textFieldObject.layer.borderWidth = 1.0;
break;
}
}
}
試試這個
self.poundsTxt.layer.borderColor = [[UIColor whiteColor]CGColor];
self.poundsTxt.layer.borderWidth=2.0;
進口石英核心框架參考到您的項目,並添加 進口<QuartzCore/QuartzCore.h>
您ViewController.m工作BORDERCOLOR和邊框寬度。
不起作用。 self.searchDisplayController.searchBar.layer.borderColor = [[UIColor colorWithRed:201.0/255.0 green:201.0/255.0 blue:201.0/255.0 alpha:1.0]這將邊界添加到整個視圖邊界:(除非我做錯了。 ] CGColor]; – klcjr89
也許這個鏈接可以幫助你[鏈接](https://developer.apple.com/LIBRARY/IOS/documentation/UIKit/Reference/UISearchBar_Class/Reference.html#//apple_ref/doc/uid/TP40007529 -CH3-SW53) – R00We
這種精細的做工:
UITextField *txtSearchField = [yourSearchBar valueForKey:@"_searchField"];
[txtSearchField setBorderStyle:UITextBorderStyleRoundedRect];
txtSearchField.layer.cornerRadius = 4;
txtSearchField.layer.borderWidth = 1.0f;
txtSearchField.layer.borderColor = [[UIColor colorWhatYouWant] CGColor];
不要忘記#import <QuartzCore/QuartzCore.h>
使用的密鑰的值是私鑰。拒收的理由 – klcjr89
斯威夫特3版本
override func viewDidLoad() {
super.viewDidLoad()
for s in searchBar.subviews[0].subviews {
if s is UITextField {
s.layer.borderWidth = 1.0
s.layer.borderColor = UIColor.gray.cgColor
}
}
}
要使它變圓,您可以使用textField.layer.cornerRadius屬性
您可以提供Swift解決方案嗎?請提前致謝 – Engineeroholic