0

の最初のレコードでキャプチャされた画像タップ イベントを探しています。UITableViewユーザーがタップしたときに、cell.imageAvtarそのイベントをキャプチャしたいだけです。

これは私が使用しているコードです

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
                let cell = tableView.dequeueReusableCellWithIdentifier("details", forIndexPath: indexPath) as! AccountCell
                if (indexPath.row == 0) {
    (cell.contentView.viewWithTag(101) as! UIImageView).image = UIImage(named: "no_image_available.jpg")
    }
return cell
}

しかし、私は試してみました ( (cell.contentView.viewWithTag(101)cell.imageAvtar.viewWithTag (101) 同様に.nil(cell.contentView.viewWithTag(100)

4

3 に答える 3

0

インターフェイスビルダーまたはストーリーボードでimageViewのタグを確認し、0の場合は101にして再試行してください..

あなたもチェックすることができます

for subView in cell.contentView.subView {
    print("subView tag --> \(subView.tag)!")
}

cellForRowAtIndexPath でこれを試してください

于 2016-08-20T07:52:35.077 に答える
0

試す、

cell.viewWithTag(101)またはself.view.viewWithTag(101)、タグが一意の場合 (つまり、このタグを他の場所で使用していない場合)。

gesture recognizerイベントをキャプチャするために追加する必要がある2番目のこと。nil を返していることをどのように知っていますか?nil を返さない場合があります。あなたは別の間違いを犯しています。no_image_available.jpgプロジェクトで適切に利用できることを確認してください!

もう 1 つのことは、タグを適切に設定していることを確認することです。

于 2016-08-20T07:54:09.200 に答える
0

私はIBOutletsvadianとjrturtonがアドバイスしたように使用しました。

これは作業コードです

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("details", forIndexPath: indexPath) as! AccountCell
                if (indexPath.row == 0) {  let tapGestureRecognizer = UITapGestureRecognizer(target:self, action:Selector("imageTapped:"))
                cell.imageAvtar.userInteractionEnabled = true
                cell.imageAvtar.addGestureRecognizer(tapGestureRecognizer)
    }
    }
     func imageTapped(img: AnyObject)
        {
                 print("event captured")
                //your logic comes here
        }
于 2016-08-22T06:05:11.070 に答える