Swift的UIPageControl

问题描述 投票:-2回答:1

我已经在我的应用程序中添加了UIPageController。我从休息服务中填充它,然后单击页面之一时,它将直接转到最新页面。我想念一些东西,但是我解决不了。我如何才能获得一个而不是最新的选择。

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.FikirClick))
for item in self.ArrayList {
    say = say + 1
    self.frameFikirImage.origin.x = self.FikirscrollView.frame.size.width * CGFloat(say) + 10
    self.frameFikirImage.origin.y = 55
    self.imgFikirImage = UIImageView(frame: self.frameFikirImage)
    self.FikirscrollView.tag = item.id as! Int
    tapGesture.view?.tag = item.id as! Int

    self.imgFikirImage.sd_setImage(with: URL(string:  item.picture!))
    self.imgFikirImage.contentMode = UIView.ContentMode.scaleAspectFit

    self.FikirscrollView.addSubview(self.imgFikirImage)
    self.frameFikirText.origin.x = self.FikirscrollView.frame.size.width * CGFloat(say) + 25
    self.frameFikirText.origin.y = 190
    self.lblFikir = UILabel(frame: self.frameFikirText)
    self.lblFikir.tintColor = UIColor.white
    self.lblFikir.text = item.adi
    self.lblFikir.font = self.lblFikir.font.withSize(20)
    self.FikirscrollView.addSubview(self.lblFikir)


    self.frameFikirButton.origin.x = self.FikirscrollView.frame.size.width * CGFloat(say) + 20
    self.frameFikirButton.origin.y = 140


    self.FikirscrollView.addGestureRecognizer(tapGesture)
}
self.FikirscrollView.contentSize = CGSize(width:self.FikirscrollView.frame.size.width * pageControlFikir,height: self.FikirscrollView.frame.size.height)

@objc func FikirClick(sender: UITapGestureRecognizer) {
    var tag = sender.view!.tag
    print(tag);
}
ios swift uipagecontrol
1个回答
1
投票

手势必须在for循环内

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.FikirClick))

由于一次仅用于1个视图,因此当您单击var tag = sender.view!.tag并将tapGesture.view?.tag = item.id as! Int更新到循环的最后一个标签时,将其添加到最后1个视图中>

还请确保

self.imgFikirImage.addGestureRecognizer(tapGesture)

并为图像视图启用用户交互

© www.soinside.com 2019 - 2024. All rights reserved.