LoginSignup
0

More than 1 year has passed since last update.

[iOS14]UITableViewCellに置いたボタンが押せなくなった

かなり昔に書かれたObjective-Cソースコードで、iOS14になってから発生したバグについてです。

何が起きたか

UITableViewCellサブクラスの実装で、コードでレイアウトしていたソースがありました。
こんな感じです。

- (void)awakeFromNib {    
    [super awakeFromNib];

    UIButton *button = [[UIButton alloc] init];
    [button addTarget:self action:@selector(doSomething:) forControlEvents:UIControlEventTouchUpInside];
    [self addSubView: button];

}

このボタンが、iOS14ではなぜか押せなくなりました。

原因

iOS14からは、UITableViewCell.contentView(UITableViewCellContentView)がUITableViewCellの大きさになっており、かつ一番手前に来るようになりました。
なので、上記のソースではUITableViewCell自体にaddSubViewしていたため、UIButtonよりも前面にUITableViewCellContentViewが来てしまい、UIButtonが押せなくなりました。

解決方法

    //[self addSubView: button];
    [self.contentView addSubView: button];

これで押せるようになります。

参考資料

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0