Так что, когда я запускаю свой код, он продолжает выходить из строя в функции awakeFromNib. Кажется, он не распознает мой UIScrollView, который я определил из IBOutlet. Вот мой UITableViewCell код:Невозможно распознать UIScrollView внутри UITableViewCell, ошибка nil
import UIKit
class ItemDetailsCell: UITableViewCell, UIScrollViewDelegate {
@IBOutlet weak var centerImage: UIImageView!
@IBOutlet weak var labelBlack: UILabel!
@IBOutlet weak var heading: UILabel!
@IBOutlet weak var body: UILabel!
@IBOutlet weak var tableScrollView: UIScrollView!
var pageImages: [UIImage] = []
var pageViews: [UIImageView?] = []
static var parentView : ItemDetailsVC!;
override func awakeFromNib() {
super.awakeFromNib()
//tableScrollView.delegate = self;
var scrollViewWidth = ItemDetailsCell.parentView.scrollViewWidth
var scrollViewHeight = ItemDetailsCell.parentView.scrollViewHeight
if let tableCheck = ItemDetailsCell.parentView.scrollImages as [Dictionary<Int,UIImage>]? {
if ItemDetailsCell.parentView.scrollImages.count > 0 {
for var subviewCounter: Int = 0; subviewCounter <= tableCheck.count; subviewCounter++ {
for scrollImage in tableCheck {
if let imgToInsert = scrollImage[subviewCounter] as UIImage? {
let viewWidth = CGFloat(subviewCounter-1)
let imgTwo = UIImageView(frame: CGRectMake(scrollViewWidth * viewWidth, 0, scrollViewWidth, scrollViewHeight))
imgTwo.image = imgToInsert
imgTwo.contentMode = .ScaleAspectFit
imgTwo.userInteractionEnabled = true
var gesture = UITapGestureRecognizer(target: self, action: "tappedOnImage:")
var pinchGesture = UIPinchGestureRecognizer(target: self, action: "pinchedImage:")
imgTwo.addGestureRecognizer(gesture)
imgTwo.addGestureRecognizer(pinchGesture)
tableScrollView.addSubview(imgTwo)
} else {
println("no match")
}
}
}
Так у меня есть UITableView в моем другом ViewController и имеет 2 прототипа ячеек, одна с UIScrollView, а другой только с текстовыми метками. Вот мой код для UITableView:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let myCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! ItemDetailsCell
myCell.centerImage.image = mainImage
myCell.heading.text = detailsHeadings[indexPath.row]
let headingString = detailsHeadings[indexPath.row]
myCell.body.text = details[headingString]
println("Label Height")
println(myCell.labelBlack.frame.height)
myCell.tableScrollView.frame = scrollViewOrigFrame
return myCell
} else {
ошибки я получаю, когда он загружает я получаю сообщение об ошибке, «Фатальная ошибка: неожиданно нашла ноль в то время как разворачивание необязательного значения» на переменной tableScrollView.
Любая идея, почему я получаю это? Я, вероятно, не делаю лучшего способа сделать просмотрщик прокрутки внутри таблицы, но я не мог найти много информации об этом.
Я получаю сообщение об ошибке в строке 'tableScrollView.addSubview (imgTwo)' – Joe
Это означает, что любой из них равен нулю. Но похоже, что imgTwo установлен за несколько минут до этого. Не помните ли вы прикрепить таблицуScrollView с вашего XIB/Storyboard? –