我习惯使用带有显示商店的自定义单元格的tableView:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell : shopsTableViewCell = tableView.dequeueReusableCellWithIdentifier("shopCell", forIndexPath: indexPath) as! shopsTableViewCell
但是由于我们在主视图中添加了滚动视图,并且apple不建议/允许混合scrollView
和tableView
,因此我删除了表格视图并使用自定义{替换了自定义单元格{1}}的。
我想继续相同的行为:
1 - 检测数组中有多少个值。
2 - 为每个数组索引实例化UIView
3 - 使用图像,位置,约束等值设置UIView
4 - 将其添加到当前视图。
我正在使用故事板,我没有看到如何从故事板中实例化自定义UIView。此UIView也是一个位于ViewController内的子视图。
我做了一个带插座的自定义UIView类:
UIView
在我的故事板中,我已将subView“连接的商店”连接到此自定义类。同时将故事板ID设置为customView:
我想实例化这个自定义子视图,每个连接的商店一个,就像我在tableView中所做的那样。 我试过这个,但它崩溃了
import Foundation
import UIKit
class connectedShop : UIView{
@IBOutlet weak var bannerViewHight: NSLayoutConstraint!
@IBOutlet weak var bannerViewTop: NSLayoutConstraint!
@IBOutlet weak var bannerViewLeft: NSLayoutConstraint!
@IBOutlet weak var bannerViewRight: NSLayoutConstraint!
@IBOutlet weak var banerDiscount: UIImageView!
@IBOutlet weak var bannerImageShop: UIImageView!
@IBOutlet weak var bannerTitle: UILabel!
@IBOutlet weak var bannerDescription: UILabel!
@IBOutlet weak var bannerButton: UIButton!
@IBAction func bannerButtonAction(sender: UIButton) {
}
}
我还尝试创建一个没有插座的新自定义类:
let storyBoard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let viewController = storyBoard.instantiateViewControllerWithIdentifier("customView")
并尝试这个:
import Foundation
import UIKit
class customShop : UIView{
var bannerViewHight: NSLayoutConstraint!
var bannerViewTop: NSLayoutConstraint!
var bannerViewLeft: NSLayoutConstraint!
var bannerViewRight: NSLayoutConstraint!
var banerDiscount: UIImageView!
var bannerImageShop: UIImageView!
var bannerTitle: UILabel!
var bannerDescription: UILabel!
var bannerButton: UIButton!
}
但是这个错误正在崩溃:
var connectedShop : customShop = customShop()
connectedShop.bannerTitle.text = "custom Shop"
self.view.addSubview(connectedShop)
任何人都可以帮我吗?
答案 0 :(得分:0)
let shopVw = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("customView") as! shopViewController
self.navigationController?.pushViewController(shopVw, animated: true) // this is the code for navigation
答案 1 :(得分:0)
尝试加载笔尖并将其投射到您的班级:
import {Computer} from './all';
new Computer();
警告:您可以在let view = NSBundle.mainBundle().loadNibNamed("YourClassView", owner: self, options: nil).first as! YourClassView
中加载xib,但是您应该使用viewDidLoad
中的视图进行操作,以便设置和运行约束,从而正确调整视图大小。