web-dev-qa-db-ja.com

Xcode 12に更新されて以来、UIControlがUICativeViewCell内に配置できません

テーブルビューを使用する検索フォームがあります。 Xcode 12を更新した後、今日UInwitch、UitextField、Uisliderは、UISLIDERの中にネストされている場合は機能しません。これをもう一度作るために設定する必要があると変更されたプロパティはありますか?

プロジェクトだけではないことを確認してください。新しいプロジェクトを作成し、その中にUITextFieldを入れていても機能しません。

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = UITableViewCell()
    
    let textField = UITextField(frame: CGRect(x: 5, y: 5, width: 400.0, height: 25.0))
    textField.delegate = self
    textField.backgroundColor = .blue
    cell.addSubview(textField)

    return cell
}

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    print("this will get called even when selecting the UITextField")
}

func textFieldDidBeginEditing(_ textField: UITextField) {
    print("this is never called")
}
 _
8
Jason Foster

私はiOS 14にアップグレードされて以来、同じことが私に起こりました。

cell.ContentView.isuserInteractionEnabled = TRUE

2
Guille

同様の問題を持っていて、そしてそれについて続いていました...私のコードについての問題は、これを行っていたUITableViewCellの下での問題です。

        didSet {
            if contentView.backgroundColor == backgroundColor { return }
            contentView.backgroundColor = backgroundColor
            for v in otherView.subview { v.backgroundColor = backgroundColor }
        }

ここでこの行を削除するcontentView.backgroundColor = backgroundColorはトリックをしました。セルが表示され、重複していないcontentViewはありません

cell.contentViewに代わりにcellに直接サブビューを追加することについての答えのみを見つけてください。

編集1 :さて、状況であなたを更新したいだけで、問題は私のサブビューがタイプUIStackViewsubviewを使用していたので、実際にarrangedSubviewsを使用する必要がありました。

これが誰かを助けることを願っています

0
Baki