在viewDidLoad中调用扩展名

时间:2016-12-04 22:05:10

标签: ios swift

我创建了一个扩展来从分段控件中删除边框。这是一个名为“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如何能够提出这样的事情。

0 个答案:

没有答案