質問: ### 前提・実現したいこと UITableViewCell内にUIButtoやUILabel、UITextViewが複数あります。 親のUITableViewControllerのdidSelectRowAtIndexPathでcell内の表示を切り替えています。 今まではセルのどこをタップしてもその切り替え処理をやっていましたが、 セル内のあるUITextViewをタップした場合は切り替え処理を行わないように変更することになりました。 ### 試したこと そもそもUITextViewをタップした場合にdidSelectRowAtIndexPathが呼ばれなければいいと考え、UITableViewCellの派生クラスでpointInsideにて、タップされたコントロールがUITextViewだったらtrueを返し、呼ばれないようにしました。 →UITextViewの文字選択や、HTMLを表示した場合のリンクもできなくなったので却下 ### 知りたいこと おそらく以下のどちらかで実現可能だと思いますが、他に方法があるかどうかや 以下の実現方法があれば知りたいです。 ・didSelectRowAtIndexPathでタップされたCellのどのコントロール領域をタップしたか判定するåå ・あるUITextViewのタップ時の処理自体は行うが、didSelectRowAtIndexPathは呼ばれないようにする ### 補足情報(言語/FW/ツール等のバージョンなど) XCode7.3.1, iOS8.3〜 言語はSwiftですが役立つ情報であればObjectiveCでもいいので知りたい。
回答: ユーザーからの操作を`UITextView`で受け取るようにすると`didSelectRowAtIndexPath`が呼ばれないので以下のように設定すると簡単に解決できると思います。 ※ Storyboardでも設定可能 ``` textView.userInteractionEnabled = true ```