Я новичок в Swift, и у меня возникла проблема с реализацией Auto Scroll с использованием UISlider. Я не могу повторить изображение после окончания массива. И когда я нажимаю кнопку Далее или Perivious, кнопка Авто Слайдер не работает. Мой код выглядит так:
override func viewDidLoad() {
super.viewDidLoad()
Image = UserDefaults.standard.string(forKey: "MultipleImage") ?? ""
titleBuzz = UserDefaults.standard.string(forKey: "title") ?? ""
descriptionBuzz = UserDefaults.standard.string(forKey: "desc") ?? ""
let fullNameArr = Image.components(separatedBy: ",")
print(fullNameArr)
lblTitle.text = titleBuzz
lbldescription.text = descriptionBuzz
for (index, element) in fullNameArr.enumerated() {
print("get Index \(index): getString \(element)")
let url = NSURL(string:element ?? "")
if !(url?.absoluteString == "") {
let data = NSData(contentsOf: url! as URL) //make sure your image in this url does exist, otherwise unwrap in a if let check
if !(data?.isEmpty ?? true){
newarray.append(UIImage(data: data! as Data) ?? UIImage (named: "Default.jpeg")!)
}else{
newarray.append(UIImage (named: "Default.jpeg")!)
}
}
}
print(newarray)
if newarray.count > 0{
imgView.image = newarray[0]
}
self.sliderView.maximumValue = Float(newarray.count - 1)
self.sliderView.minimumValue = 0
self.sliderView.isContinuous = true
gameTimer = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(runTimedCode), userInfo: nil, repeats: true)
// self.sliderView.maximumValue = Float(newarray.count - 1)
// Do any additional setup after loading the view.
}
@objc func runTimedCode(timer: Timer) {
var index = Float(self.sliderView.value + 1) // increase by 1
self.sliderView.setValue(index, animated: true)
print("index \(index)")
imgView.image = newarray[Int(sliderView.value)]
if self.sliderView.value >= self.sliderView.maximumValue {
timer.invalidate()
}
}
@IBAction func btnPreviousClick(_ sender: Any) {
sliderView.value -= 1
if sliderView.value >= 0 && newarray.count>0{
imgView.image = newarray[Int(sliderView.value)]
}
}
@IBAction func btnNextClick(_ sender: Any) {
sliderView.value += 1
if sliderView.value >= 0 && newarray.count>0{
imgView.image = newarray[Int(sliderView.value)]
}
}
@IBAction func SliderViewClick(_ sender: UISlider) {
var value = Int(sender.value)
imgView.image = newarray[value]
}
Мой код работает с автопрокруткой, но он не повторяется с самого начала. Я хочу запустить его заново, как только он это сделает, и он также должен работать со следующей и предыдущей кнопками.
Пожалуйста, помогите! Заранее спасибо!