lixiang1994 / LEEAlert

优雅的可自定义 Alert ActionSheet
MIT License
1.3k stars 204 forks source link

customView 内部使用自动布局时 有问题 #49

Closed ipad4 closed 5 years ago

ipad4 commented 5 years ago

customView 内部使用自动布局时,最后展示的界面中,customView的高度为0

lixiang1994 commented 5 years ago

可以发一些相关代码吗?

ipad4 commented 5 years ago

customView的宽度和高度是由其子控件撑起来的,后来看了你的源码布局自定视图的部分,发现是根据customView的frame来设置的,我就做了相关的修改

        LEECustomView *custom = (LEECustomView *)item;

        CGRect viewFrame = custom.view.frame;

        if (custom.isAutoWidth) {

            custom.positionType = LEECustomViewPositionTypeCenter;

            viewFrame.size.width = alertViewMaxWidth - self.config.modelHeaderInsets.left - custom.item.insets.left - self.config.modelHeaderInsets.right - custom.item.insets.right;

            CGSize fittingSize = UILayoutFittingCompressedSize;
            fittingSize.width = viewFrame.size.width;
            CGSize selfSize = [custom.view systemLayoutSizeFittingSize:fittingSize
                                  withHorizontalFittingPriority:UILayoutPriorityRequired
                                        verticalFittingPriority:UILayoutPriorityFittingSizeLevel];

            viewFrame.size.height = selfSize.height;
        }
lixiang1994 commented 5 years ago

你在添加前调用一下layoutIfNeeded这个方法呢?