2015-11-30 6 views
0

Я делаю прогресс круг в сегодняшнем расширении. Я создаю для него дополнительный класс. Я вижу это в раскадровке с помощью IBDesignable. Но круг не появляется в сегодняшнем расширении на реальном устройстве (iPhone 5s, iPad 3) или симуляторе. Как я могу это исправить?Пользовательские цифры не отображаются в Today Extension

import UIKit 

@IBDesignable 
class CPUView: UIView { 

    // MARK: - colors 
    @IBInspectable var firstColor: UIColor = UIColor.blackColor() 
    @IBInspectable var secondColor: UIColor = UIColor.greenColor() 
    @IBInspectable var thirdColor: UIColor = UIColor.yellowColor() 

    // Only override drawRect: if you perform custom drawing. 
    // An empty implementation adversely affects performance during animation. 
    override func drawRect(rect: CGRect) { 
     // Drawing code 
     self.addCircle(10, capRadius: 0.0) 
    } 

    func addOval(lineWidth: CGFloat, path: CGPath, strokeColor: UIColor, fillColor: UIColor, strokeStart: CGFloat, strokeEnd: CGFloat) { 
     let shape = CAShapeLayer() 
     shape.lineWidth = lineWidth 
     shape.path = path 
     shape.strokeColor = strokeColor.CGColor 
     shape.fillColor = fillColor.CGColor 
     shape.strokeStart = strokeStart 
     shape.strokeEnd = strokeEnd 
     layer.addSublayer(shape) 
    } 

    func addCircle(arcRadius: CGFloat, capRadius: CGFloat) { 
     let X = CGRectGetMidX(self.bounds) 
     let Y = CGRectGetMidY(self.bounds) 

     let firstPathCircle = UIBezierPath(ovalInRect: CGRectMake(X - arcRadius/2, Y - arcRadius/2, arcRadius, arcRadius)).CGPath 

     self.addOval(0.1, path: firstPathCircle, strokeColor: UIColor.redColor(), fillColor: UIColor.yellowColor(), strokeStart: 0.0, strokeEnd: 0.5) 
    } 

} 

enter image description here enter image description here

UPDATE

Я попытался написать код в drawRect, но я получил тот же результат

override func drawRect(rect: CGRect) { 
    // Drawing code 
    let x = CGRectGetMidX(self.bounds) 
    let y = CGRectGetMidY(self.bounds) 
    let radius = CGFloat() 

    let path = UIBezierPath(ovalInRect: CGRectMake(x - radius/2, y - radius, 100, 100)).CGPath 

    let shape = CAShapeLayer() 
    shape.lineWidth = 0.0 
    shape.fillColor = UIColor.greenColor().CGColor 
    shape.path = path 
    layer.addSublayer(shape) 
} 

ответ

0

Я написал следующий код и он работает для меня

override func viewDidLoad() { 
     super.viewDidLoad() 
     self.preferredContentSize = CGSize(width: self.view.frame.width, height: 200.0) 
    } 
Смежные вопросы