Форум программистов, компьютерный форум, киберфорум
Наши страницы
Swift
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.72/32: Рейтинг темы: голосов - 32, средняя оценка - 4.72
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
1

Нужна задержка между выполнениями действий

23.06.2014, 19:48. Просмотров 5771. Ответов 41
Метки нет (Все метки)

Здравствуйте.
Подскажите, как сделать, чтобы текст выводился с задеркой (например в одну секунду).
Например:
Код
println("Ла-ла-ла")
//А тут задержка в 1 секунду.
println("Бла-бла-бла")
На самом деле код нечно по другому будет выглядеть (не в консоле будет вывод).
Но мне надо, чтобы вывелся "Ла-ла-ла" и через секунду "Бла-бла-бла".
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2014, 19:48
Ответы с готовыми решениями:

Задержка между выполнениями функций макроса.
макрос выполняет подряд функцию А, функцию Б, функцию В, ... Как сделать...

Задержка между клипами
Здравствуйте. Порылся по форуму, видел несколько вариантов ответо на нужный...

Задержка между действиями
Есть такой вот метод: public void move(int x) { while (this.x != x) {...

Задержка между командами
Добрый день! я хочу спросить, почему при выполнении кода int y=0; while(1) {...

Задержка между показом картинок
такой кусок кода void __fastcall TForm1::Button1Click(TObject *Sender) {...

41
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
25.06.2014, 20:42  [ТС] 21
Я так и не понял. Я прописал это:
Objective-C
1
2
3
4
5
6
7
8
9
class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
       var  timer1 = NSTimer.scheduledTimerWithTimeInterval(1.5, target:self, selector: "myMetod1:", userInfo: nil, repeats: true)
        // Do any additional setup after loading the view, typically from a nib.
    } 
}
А что надо прописать, чтобы в конкретном месте сработал этот таймер?
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
25.06.2014, 23:42 22
Цитата Сообщение от Mistin Посмотреть сообщение
А что надо прописать, чтобы в конкретном месте сработал этот таймер?
нужно создать функцию в том же классе

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
       var  timer1 = NSTimer.scheduledTimerWithTimeInterval(1.5, target:self, selector: "myMetod1:", userInfo: nil, repeats: true)
        // Do any additional setup after loading the view, typically from a nib.
    } 
 
func myMetod1(timer1:NSTimer)
 {
 //тут код
 }
}
0
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
26.06.2014, 11:00  [ТС] 23
Так...а объявлять её как? Я имею в виду, прописывают я потом: myMethod1(timer1: А ТУТ ЧТО ПИСАТЬ?)
Или как его тогда ставить?
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
26.06.2014, 11:11 24
Цитата Сообщение от Mistin Посмотреть сообщение
Так...а объявлять её как? Я имею в виду, прописывают я потом: myMethod1(timer1: А ТУТ ЧТО ПИСАТЬ?)
Или как его тогда ставить?
я тебе уже рабочий код привел, все как есть, так и пишешь.
0
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
26.06.2014, 11:15  [ТС] 25
Возможно я туплю...
Objective-C
1
2
3
4
func myMetod1(timer1:NSTimer)
 {
 //тут код
 }
Но этот код не делает конкретно ничего. Что бы он начал делать, надо прописать: myMethod1(timer1: ***)
Верно? Так вот, я не понимаю что ставить вместо ***.
Или надо написать вобще другое (переменную timer1)?
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
26.06.2014, 11:22 26
ну ты можешь написать

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
       var  timer1 = NSTimer.scheduledTimerWithTimeInterval(1.5, target:self, selector: "myMetod1:", userInfo: nil, repeats: true)
        // Do any additional setup after loading the view, typically from a nib.
    } 
 
//timer1:NSTimer нужен для того, чтобы ты мог получить доступ в этой функции к таймеру и мог им управлять
func myMetod1(timer1:NSTimer)
 {
  println("test") //покажет строку test
  timer1.invalidate() //остановит таймер который ты создал в главной функции viewDidLoad
 }
}
Что еще не понятно?
0
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
26.06.2014, 12:01  [ТС] 27
Возможно, я торможу, но никак не могу понять.
Просто на моём примере, если объяснишь, то я пойму.
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import UIKit
 
class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    @IBAction func startButton(sender : UIButton) { //Кнопка, при нажатии на которую начинается действие
        let text = "123"
        for symbol in text {
            println("\(symbol)\n")
            //Тут ставим паузу, что бы цифры 1, 2 и 3 выводились с задержкой 1 секундой.
        }
 
    }
}
Вот код, что надо сделать чтобы ставилась пауза после строки: println("\(symbol)\n")
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
26.06.2014, 12:20 28
можно так
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import UIKit
 
class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    @IBAction func startButton(sender : UIButton) { //Кнопка, при нажатии на которую начинается действие
        let text = "123"
        for symbol in text {
            println("Цифра:"+symbol)
            sleep(1)
            //Тут ставим паузу, что бы цифры 1, 2 и 3 выводились с задержкой 1 секундой.
        }
 
    }
}
можно так

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import UIKit
 
class ViewController: UIViewController {
    
var i = 1
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    @IBAction func startButton(sender : UIButton) { //Кнопка, при нажатии на которую начинается действие
        var  timer = NSTimer.scheduledTimerWithTimeInterval(1, target:self, selector: "myMetod:", userInfo: nil, repeats: true)
        }
 
func myMetod(timer:NSTimer){
println(i++)
if i == 3 {
timer.invalidate()
}
}
 
    }
}
можно вообще кучу способов найти, все зависит от того, какую задачу ты хочешь реализовать.
вот, посмотри наглядный пример для работы с таймером, правда на английском, зато все понятно даже по коду, 7 минут того стоит

0
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
26.06.2014, 12:41  [ТС] 29
Заработало, в консоле отображается нормально.
НО добавляю Label:
@IBOutlet var wordPrint : UILabel
И заменяю в методе строку
Objective-C
1
println(i++)
На эту:
Objective-C
1
wordPrint.text = i++
Отображается только последний символ почему-то. Как сделать чтобы показывался первый символ, потом второй и т.д. в Label?
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
26.06.2014, 13:14 30
Objective-C
1
wordPrint.text = String(i++)
0
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
26.06.2014, 13:24  [ТС] 31
Ок, попробуй так. Всё равно не работает.
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
26.06.2014, 13:48 32
Цитата Сообщение от Mistin Посмотреть сообщение
Ок, попробуй так. Всё равно не работает.
я понял

Objective-C
1
2
3
4
5
6
7
func  myMetod(timer:NSTimer)
{
wordPrint.text = wordPrint.text + String(i++)
if i == 4 {
timer.invalidate()
}
}
0
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
26.06.2014, 13:57  [ТС] 33
Работает не так как надо. У меня работает по зареджке только в консоле, а в симуляторе неправильно.
Это только у меня так?
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
26.06.2014, 14:06 34
я не знаю, у меня в симуляторе работает так как надо, покажи еще раз весь свой код
циферки появляются друг за другом
0
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
26.06.2014, 16:16  [ТС] 35
О...пересоздал проект. Повторил код и заработало! СПС, ребят)

Добавлено через 2 часа 0 минут
Есть ещё вопрос. Я вот создаю массив:
Objective-C
1
2
3
var word = ["qwe"]
word[1] = "rty"
println("\(word[1])")
Не работает.
Почему то не хочет создавать в массиве ещё одно место. А вот изменять я массив могу, но добавлять нет.
Как сделать, чтобы в массив я мог добавлять элементы?
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
26.06.2014, 16:48 36
Цитата Сообщение от Mistin Посмотреть сообщение
Как сделать, чтобы в массив я мог добавлять элементы?
Objective-C
1
2
3
word.append("rty")
//или так:
word+="rty"
0
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
26.06.2014, 18:45  [ТС] 37
Можете жать комментарий к коду?

Добавлено через 1 час 55 минут
Мой пост выше не актуален.
У меня есть кнопка, которая должна ставить на паузу этот таймер. Так вот, как его приостановить, чтобы потом можно было легко продолжить с того же места.
0
TexHuK
9 / 9 / 0
Регистрация: 19.10.2011
Сообщений: 102
26.06.2014, 19:21 38
Цитата Сообщение от Mistin Посмотреть сообщение
У меня есть кнопка, которая должна ставить на паузу этот таймер. Так вот, как его приостановить, чтобы потом можно было легко продолжить с того же места.
я очень терпеливый
Посмотри пожалуйста вот это видео
http://www.youtube.com/watch?v=ZzmrC8FLzaw
там всего 7 минут, и ты поймешь как ставить и как снимать с паузы с помощью таймера.

а так обычно условие создают, типа истина и ложь
истина код выполняется, ложь код не выполняется
0
Mistin
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 34
27.06.2014, 11:49  [ТС] 39
Objective-C
1
истина код выполняется, ложь код не выполняется
Спасибо. Не знал, сильно помог)

Добавлено через 16 часов 26 минут
Не подскажите, как добавить текстовое поле, в котром несколько строк (ну как Text Field, но в нём 1 строка только, а мне надо, чтобы можно было целый текст добавить). Заранее спс.
0
Victorianec
21 / 21 / 6
Регистрация: 09.01.2014
Сообщений: 118
27.06.2014, 13:13 40
UITextView - думаю то, что вам нужно.
0
27.06.2014, 13:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2014, 13:13

Задержка между запуском программ
подскажите пожалуйста!!!!!!!!! вопрос такой : есть кнопка по ней вызываются два...

Задержка между вызовами методами
Всем привет.Подскажите пожалуйста. В одном месте кода вызываю метод А. Сейчас...

Proxy. Задержка между запросами
Мы используем API, который имеет лимит 1 запрос/секунду. Запросы идут из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru