Swift - Spielplatz - Core Graphics / Core Text / Benutzerdefinierte Ansicht

Frage

Versuche ich zu machen, um eine eigene UIView-Komponente im swift-Spielplatz. Ich habe in der Lage gewesen, um herauszufinden, wie alles außer für die Darstellung von text korrekt. Ich bin mir nicht sicher ob ich das tun soll dies über den Core-Grafik oder Core Text-oder genau, wie man es korrekt funktioniert.

Wie Sie sehen können in dem Bild unten, ich will zum Rendern von text die beiden oben unten und rechts oben auf jeder Seite meine eigene View-Komponente

Swift - Spielplatz - Core Graphics /Core Text /Benutzerdefinierte Ansicht

Habe ich versucht, verschiedene Möglichkeiten, um den text zu arbeiten, aber ich halten auf Grund zu laufen. Wenn jemand in der Lage wäre, mir zu zeigen, wie Sie ändern, mein Spielplatz, um ein paar text-rendering, das wäre auch genial.

Spielplatz-Code

//Playground - noun: a place where people can play

import Foundation
import UIKit

class RunwayView : UIView {


    var northText : String?
    var southText : String?


    ///Draws the "runway"
    override func drawRect(rect: CGRect) {

        //Setup graphics context
        var ctx = UIGraphicsGetCurrentContext()


        //clear context
        CGContextClearRect(ctx, rect)
        let parentVieBounds = self.bounds
        let width = CGRectGetWidth(parentVieBounds)
        let height = CGRectGetHeight(parentVieBounds)


        //Setup the heights
        let endZoneHeight : CGFloat = 40


        /* Remember y is negative and 0,0 is upper left*/


        //Create EndZones
        CGContextSetRGBFillColor(ctx, 0.8, 0.8, 0.8, 1)
        CGContextFillRect(ctx, CGRectMake(0, 0, width, endZoneHeight))
        CGContextFillRect(ctx, CGRectMake(0, height-endZoneHeight, width, endZoneHeight))


        var northString = NSMutableAttributedString(string: "36")
        var attrs = [NSFontAttributeName : UIFont.systemFontOfSize(16.0)]
        var gString = NSMutableAttributedString(string:"g", attributes:attrs);


        var line = CTLineCreateWithAttributedString(gString)

        CGContextSetTextPosition(ctx, 10, 50);
        CTLineDraw(line, ctx);

        //Clean up

    }

}


var outerFrame : UIView = UIView(frame: CGRectMake(20,20,400,400))
var runway1 : RunwayView = RunwayView(frame: CGRectMake(0,0,30,260))
var runway2 : RunwayView = RunwayView(frame: CGRectMake(80,0,30,340))

runway1.transform = CGAffineTransformConcat(CGAffineTransformMakeTranslation(20, 200),
    CGAffineTransformMakeRotation(-0.785398163))
outerFrame.addSubview(runway1)

runway2.transform = CGAffineTransformConcat(CGAffineTransformMakeTranslation(120, 140),
    CGAffineTransformMakeRotation(-0.585398163))

outerFrame.addSubview(runway2)



outerFrame.backgroundColor = UIColor.yellowColor()
outerFrame.clipsToBounds = true


//View these elements
runway1
outerFrame
runway1
InformationsquelleAutor Jeef | 2014-11-21
Schreibe einen Kommentar