С помощью кнопки в UICollectionViewCell, Как мне получить детализацию содержимого конкретной ячейки?

Pivot был тем, как я справлялся с этим, в конечном итоге работая над ошибкой после ошибки. T / SQL бросил несколько ключей на моем пути. Я сначала Pivoted Query 2

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(PivotQ.Abbreviation) 
                from ( --QUERY2 
                        ) PivotQ
        FOR XML PATH(''), TYPE
        ).value('.', 'NVARCHAR(MAX)') 
    ,1,1,'')

set @query = 'SELECT StepNumber + ''-'' + QuestionNum as QuestionNumber, '+@cols+' from 
         (
            --Query2
        ) x
        pivot 
        (
            SUM(Answer)
            for Abbreviation in (' + @cols + ')
        ) p 
        '

Затем я использовал QuestionNumber в качестве ключа для присоединения к QuestionNumber MainTable. Я использовал второй @cols, чтобы сделать столбцы для использования во втором запросе

select @cols2 = STUFF((SELECT distinct ', PivotJoin.' + QUOTENAME(PivotQ.Abbreviation) 
                from ( --QUERY2 
                        ) PivotQ
        FOR XML PATH(''), TYPE
        ).value('.', 'NVARCHAR(MAX)') 
    ,1,1,'')

'+ @cols2 +' --added into Select of MainTable

-- Added to From Statement
inner join
('+ @query +') PivotJoin on PivotJoin.QuestionNumber = Section.StepNumber + ''-'' + Question.QuestionNumber

Мне пришлось сделать номер вопроса Pivot основным, потому что теперь его T / SQL вместо чистого SQL с использованием псевдонима в группе перестали работать. Затем я добавил @ cols2 в предложение Group By. и сделал его заказ по PivotJoin.QuestionNumber вместо.

1
задан James Z 19 January 2019 в 10:07
поделиться

2 ответа

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let productData = trendingProductsDataArray[indexPath.row]
    let cell = trendingProductCV.dequeueReusableCell(withReuseIdentifier: "TrendingProductsCVCell", for: indexPath) as? TrendingProductsCVCell
    cell?.trendingProductImage.downloadImages(url: productData.images![0].source!)
    cell?.trendingProducttitle.text = productData.title
    cell?.trendingProductSellingPrice.text =  productData.salePrice
    cell?.struckTest(unstruckedText: productData.regularPrice!)
    cell?.trendingAddToCartBtn.addTarget(self, action: #selector(addToCartBtnTapped(sender:)), for:.touchUpInside)

    return cell!
}

@objc func addToCartBtnTapped(sender:UIButton) {

    let buttonPosition:CGPoint = sender.convert(CGPoint.zero, to:self.tblUsers)
    let indexPath = self.tblUsers.indexPathForRow(at: buttonPosition)
    let productData = trendingProductsDataArray[indexPath.row]
}

Попробуйте это

0
ответ дан Khush 19 January 2019 в 10:07
поделиться

вы можете определить протокол на collectionViewCell и запустить его, когда кнопка addToCard нажмет на каждую ячейку, и в вашем viewController орудии делегата:

protocol CollectionViewCellDelegate: class {
    func addtoCard(_ cell: TrendingProductsCVCell)
}

class TrendingProductsCVCell: UITableViewCell { 
    weak var delegate: CollectionViewCellDelegate?
    // ... the rest of your code

    @IBAction func addToCardButtonClicked(_ sender: UIButton) { //action of ***addToCard*** 
        delegate?.addToCard(self)
    }
}

class viewController: CollectionViewCellDelegate { //and what you want to implement
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = trendingProductCV.dequeueReusableCell(withReuseIdentifier: "TrendingProductsCVCell", for: indexPath) as? TrendingProductsCVCell
        cell.delegate = self
        // ... the rest of your code
        return cell
    }

    func addToCard(cell: TrendingProductsCVCell) {
        //do what you want with your cell and its content
    } 
}
0
ответ дан Arash Etemad 19 January 2019 в 10:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: