删除UISearchBar和阴影的顶部和底部边框?
我用UISearchBar创建了一个.xib。
我想删除顶部和底部边框,如下图所示:
在顶部边框下面还有一个看起来像阴影的东西。
我曾尝试改变背景/色调等,但努力让它消失。
任何帮助都会受到欢迎,任何想法?
编辑
所以下面的代码允许我摆脱顶部和底部的边框,但不是奇怪的投影。 我添加了绿色背景以更清楚地显示它。
另外,在文本框(而不是视图)周围添加边框的最佳方法是什么? 谢谢
// **这就是我要做的事情: https : //stackoverflow.com/questions/33107058/uiviewcontroller-sizing-as-maincontroller-within-uisplitviewcontroller
这是我正在使用的代码。
import UIKit class TopSearchViewController: UIView { var expanded: Int = 0 @IBOutlet weak var trailingConstraint: NSLayoutConstraint! @IBOutlet var contentView: UIView! @IBOutlet weak var searchBar: UISearchBar! @IBAction func advancedSearchButton(sender: AnyObject) { if expanded == 0 { self.layoutIfNeeded() UIView.animateWithDuration(0.1, animations: { self.trailingConstraint.constant = 200 self.layoutIfNeeded() }) expanded = 1 } else { self.layoutIfNeeded() UIView.animateWithDuration(0.1, animations: { self.trailingConstraint.constant = 25 self.layoutIfNeeded() }) expanded = 0 } } override init(frame: CGRect) { // for using CustomView in code super.init(frame: frame) self.commonInit() } required init(coder aDecoder: NSCoder) { // for using CustomView in IB super.init(coder: aDecoder) self.commonInit() } private func commonInit() { NSBundle.mainBundle().loadNibNamed("TopSearchViewController", owner: self, options: nil) contentView.frame = self.bounds contentView.autoresizingMask = .FlexibleHeight | .FlexibleWidth self.addSubview(contentView) self.searchBar.layer.borderWidth = 1 self.searchBar.layer.borderColor = UIColor.whiteColor().CGColor println(searchBar) for subview in searchBar.subviews { println("hello") var textField : UITextField if (subview.isKindOfClass(UITextField)) { textField = subview as! UITextField textField.borderStyle = .None textField.layer.borderWidth = 1 textField.layer.borderColor = UIColor.lightGrayColor().CGColor textField.layer.cornerRadius = 14 textField.background = nil; textField.backgroundColor = UIColor.whiteColor() } } } func viewDidLoad() { } }
将bar的backgroundImage
设置为空的 UIImage
, 而不是 nil
:
searchBar.backgroundImage = UIImage()
您也可以设置barTintColor
,如下面评论中指定的那样。
尝试这个:
searchBar.layer.borderWidth = 1 searchBar.layer.borderColor = UIColor.whiteColor().CGColor
编辑:
我相信阴影是由内部UITextField
引起的。 尝试使用以下代码:
var textField : UITextField for subview in searchBar.subviews { if (subview.isKindOfClass(UITextField)) { textField = subview as! UITextField textField.borderStyle = .None textField.layer.borderWidth = 1 textField.layer.borderColor = UIColor.lightGrayColor().CGColor textField.layer.cornerRadius = 14 textField.background = nil; textField.backgroundColor = UIColor.whiteColor() } }
我已经尝试了所有的答案,但他们没有删除UISearchBar的UITextfield内部的1px内部阴影。
我通过增加白色边框的宽度解决了这个问题。 它重叠在阴影上。
searchBar.layer.borderWidth = 10 searchBar.layer.borderColor = UIColor.white.cgColor
还有另一个技巧:
对于底部边框,您可以通过俯仰视图(例如:tableView)按-1像素覆盖它。
对于顶部边框,将其向上移动1个像素到导航栏下方也可以解决此问题。