我用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() {
}
}
Run Code Online (Sandbox Code Playgroud)
NRi*_*itH 59
设置栏的backgroundImage一个空的 UIImage,没有 nil:
searchBar.backgroundImage = UIImage()
Run Code Online (Sandbox Code Playgroud)
您也可以设置barTintColor,如下面评论中指定的那样.
and*_*ndy 11
使用 Xcode 11,在 Storyboard 中,您可以将“搜索样式”设置为“最小”。
在代码中: searchBar.searchBarStyle = .minimal
我已经尝试了所有的答案,但他们没有删除UISearchBar的UITextfield里面的1px内部阴影.
我通过增加白色边框的宽度解决了这个问题.它重叠在阴影上.
searchBar.layer.borderWidth = 10
searchBar.layer.borderColor = UIColor.white.cgColor
Run Code Online (Sandbox Code Playgroud)
# 方法一
感谢@andrewlundy,故事板方法是这样的。(Xcode 11.*)
在故事板中选择 UISearch (假设:您已经将 UISearch Bar 拖到您的 UIView/UIViewController 中)
转到Attribute Inspector,你会看到Search Style
Minimal从下拉列表中选择Search Style。
就是这样...
# 方法2
否则,如果您想以编程方式快速执行此操作
在 ViewController swift 文件中创建一个IBOutletUISearch
searchBar.searchBarStyle = .minimal
在这里代替searchBar, 放your UISearch outlet's name
尝试这个:
searchBar.layer.borderWidth = 1
searchBar.layer.borderColor = UIColor.whiteColor().CGColor
Run Code Online (Sandbox Code Playgroud)
编辑:
我相信阴影是由内在造成的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()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16615 次 |
| 最近记录: |