我创建了一个扩展来从分段控件中删除边框。这是一个名为“UISegmentedControl + removeborders.swift”的扩展名:
import UIKit
extension UISegmentedControl {
func removeBorders() {
setBackgroundImage(imageWithColor(backgroundColor!), forState: .Normal, barMetrics: .Default)
setBackgroundImage(imageWithColor(tintColor!), forState: .Selected, barMetrics: .Default)
setDividerImage(imageWithColor(UIColor.clearColor()), forLeftSegmentState: .Normal, rightSegmentState: .Normal, barMetrics: .Default)
}
private func imageWithColor(color: UIColor) -> UIImage {
let rect = CGRectMake(0.0, 0.0, 1.0, 1.0)
UIGraphicsBeginImageContext(rect.size)
let context = UIGraphicsGetCurrentContext()
CGContextSetFillColorWithColor(context, color.CGColor);
CGContextFillRect(context, rect);
let image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image
}
}
Xcode没有发现该代码中的任何错误,但我很难搞清楚如何调用扩展程序。这是分段控件所在的表视图控制器代码的标题,标题为“AddTaskTableViewController.swift”:
import UIKit
class AddTaskTableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
func segmentedControl.removeBorders()
}
}
我正在尝试使用最后一行“func segmentedControl.removeBorders()”调用扩展名,但我在该行上遇到两个错误:1)一行上的连续语句必须用';'分隔2)期望'('在函数声明的参数列表中。不可否认,我是最糟糕的n00b,这就是为什么我挂了这个。最后一行代码应该是什么,或者我应该调用扩展方式不同?谢谢!!!
注意:我用于我的扩展程序的代码来自Remove UISegmentedControl separators completely. (iphone)中的第3个响应,如果这有助于您了解这样的n00b如何能够提出这样的事情。