У меня есть несколько различных функций Coregraphics, которые выносят различные элементы часового пояса. Логика, которую я собираюсь собрать, определяет, какой аспект поверхности часов отображается на основе переменной, выведенной из текущего часа. Все методы рисования перечислены в отдельном быстром классе/файле. Вместо того, чтобы создавать эту колонку инструкций if, как я могу упростить этот процесс, чтобы вставить переменную в вызванный метод? В этом вы можете видеть, что drawCanvas04() связан с 16:00 (или 16 часов).Методы вызова, основанные на переменной (SWIFT)
class ViewController: UIViewController {
func updateTime() {
var date:NSDate = NSDate()
var calendar:NSCalendar = NSCalendar.currentCalendar()
var components:NSDateComponents = calendar.components(NSCalendarUnit.CalendarUnitHour | NSCalendarUnit.CalendarUnitMinute | NSCalendarUnit.CalendarUnitSecond, fromDate: date)
var hour = components.hour
var minute = components.minute
var seconds = components.second
var time = "\(hour) : \(minute) : \(seconds)"
println("\(time)")
if hour == 16 || hour == 04 {
ClockStyleKit.drawCanvas04()
} else {
if hour == 17 || hour == 05 {
ClockStyleKit.drawCanvas05()
} else {
if hour == 18 || hour == 06 {
ClockStyleKit.drawCanvas06()
} else {
if hour == 19 || hour == 07 {
ClockStyleKit.drawCanvas07()
} else {
if hour == 20 || hour == 08 {
ClockStyleKit.drawCanvas08()
} else {
if hour == 21 || hour == 09 {
ClockStyleKit.drawCanvas09()
} else {
if hour == 22 || hour == 10 {
ClockStyleKit.drawCanvas10()
}
if hour == 23 || hour == 11 {
ClockStyleKit.drawCanvas11()
}
if hour == 24 || hour = 12 {
ClockStyleKit.drawCanvas12()
}
}
Ниже приведен пример способа вытягивания stylekit называют:
public class func drawCanvas07() {
//// Color Declarations
let color0 = UIColor(red: 0.894, green: 0.000, blue: 0.476, alpha: 1.000)
//// HOUR7 Drawing
var hOUR7Path = UIBezierPath(ovalInRect: CGRectMake(65.5, 155.99, 24, 24))
color0.setFill()
hOUR7Path.fill()
}
Должен ли метод drawrect размещаться в другом классе или он должен быть вложен в метод расчета времени? У меня возникли трудности с структурированием кода для передачи переменной часа без запуска «Невозможно вызывать drawCanvas» с помощью списка аргументов типа «(Int)». – softdownfeathers
Также кажется, что единственным способом я могу использовать метод экземпляра self. drawCanvas - это когда я вызываю его из файла StyleKit, иначе он просит меня для ClockStyleKit.drawCanvas(). – softdownfeathers
Еще раз, не используйте методы класса. Вы использовали методы класса, поэтому вам пришлось выполнять 'ClockStyleKit.drawCanvas() '. – Schemetrical