【发布时间】:2017-05-22 13:51:14
【问题描述】:
【问题讨论】:
-
它只是一个滚动视图。我想这可以帮助你:github.com/hrscy/TodayNews
标签: ios swift scroll uiscrollview
【问题讨论】:
标签: ios swift scroll uiscrollview
我解决了。
1. 首先创建一个.xib 文件,命名为你想要的任何名称,我将我的命名为unnamedView,然后添加标签和imageViews。
2.然后像这样创建UnnamedView类文件并添加所有标签和图像
class unnamedView: UIView {
@IBOutlet weak var firstButton: UIButton!
@IBOutlet weak var firstImage: UIImageView!
@IBOutlet weak var firstLabel: UILabel!
}
3.然后在主视图控制器中为 UnnamedView 创建一个数组。
let unnamed = ["title1":"textTitleToLabel","image1":"nameOfImage"]
var unnamedArray = [Dictionary<String,String>]()
4.然后我将滚动视图添加到主视图控制器
@IBOutlet weak var unnamedScrollView: UIScrollView!
5. 在 viewDidLoad() 中添加以下内容
unnamedArray = [unnamed]
unnamedScrollView.isPagingEnabled = true
unnamedScrollView.contentSize = CGSize(width: unnamedScrollView.bounds.width * CGFloat(unnamedArray.count), height: 100)
unnamedScrollView.showsHorizontalScrollIndicator = false
unnamedScrollView.delegate = self
loadUnnamed()
6.最后在viewDidLoad下面添加了
func loadCategories() {
for (index, category) in categoriesArray.enumerated() {
if let unnamedView = Bundle.main.loadNibNamed("unnamedView", owner: self, options: nil)?.first as? unnamedView {
unnamedView.firstImage.image = UIImage(named: category["image1"]!)
unnamedView.firstLabel.text = category["title1"]
unnamedView.firstButton.tag = index
unnamedView.firstButton.addTarget(self, action: #selector(ViewController.gotoCategory(sender:)), for: .touchUpInside)
unnamedScrollView.addSubview(unnamedView)
unnamedView.frame.size.width = self.view.bounds.size.width
unnamedView.frame.origin.x = CGFloat(index) * self.view.bounds.size.width
}
}
}
func gotoCategory (sender:UIButton) {
print("The user wants to buy feature \(sender.tag)")
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "tableView")
self.present(newViewController, animated: true, completion: nil)
}
另外,如果您想添加页面控制点,只需添加到此即可。
@IBOutlet weak var featurePageControl: UIPageControl!
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let page = scrollView.contentOffset.x / scrollView.frame.size.width
featurePageControl.currentPage = Int(page)
}
【讨论】: