iOS开发

iOS 15 中使用UIButton遇到的问题

2021-12-01  本文已影响0人  whoiamwhere

在实现左字右图的需求时发现一下代码在iOS15中失效

[self.detailBtn setTitleEdgeInsets:UIEdgeInsetsMake(0, -self.detailBtn.imageView.image.size.width-2, 0, self.detailBtn.imageView.image.size.width+2)];
[self.detailBtn setImageEdgeInsets:UIEdgeInsetsMake(0, self.detailBtn.titleLabel.bounds.size.width+2, 0, -self.detailBtn.titleLabel.bounds.size.width-2)];

研究得知iOS15中引入了UIButtonConfiguration。通过以下代码可以更直观的实现按钮内布局

UIButtonConfiguration *detailBtnConfig = [UIButtonConfiguration plainButtonConfiguration];
detailBtnConfig.contentInsets = NSDirectionalEdgeInsetsMake(0, 0, 0, 0);
detailBtnConfig.imagePlacement = NSDirectionalRectEdgeTrailing;
detailBtnConfig.imagePadding=4.5;
self.detailBtn.configuration= detailBtnConfig;

继而发现在iOS15中按钮文字和图片消失,进入其他界面返回后才出现。经研究发现为xib中设置了style 为plain,改为default后正常显示

上一篇 下一篇

猜你喜欢

热点阅读