菜鸟教程小白 发表于 2022-12-13 05:00:46

ios - 具有拐角半径的自动布局(带砌体)


                                            <p><p>我想用 Masonry 布局一个圆形 UIImageView。所以我创建了这样的 UIImageView:</p>

<pre><code>[self.imageView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.centerX.equalTo(self.mas_centerX);
    make.top.equalTo(self.mas_top).with.offset([ floatValue]);
    make.bottom.equalTo(self.descriptionLabel.mas_top).with.offset(-[ floatValue]);
    make.height.equalTo(self.descriptionLabel.mas_height).priorityHigh();
    make.width.equalTo(self.imageView.mas_height);
}];
</code></pre>

<p>然后我为 ImageView 创建了约束</p>

<pre><code>[self.imageView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.centerX.equalTo(self.mas_centerX);
    make.top.equalTo(self.mas_top).with.offset([ floatValue]);
    make.bottom.equalTo(self.descriptionLabel.mas_top).with.offset(-[ floatValue]);
    make.height.equalTo(self.descriptionLabel.mas_height).priorityHigh();
    make.width.equalTo(self.imageView.mas_height);
}];
</code></pre>

<p>然后我尝试应用这些约束,然后设置角半径。</p>

<pre><code>    ;
    ;
    ;
    self.imageView.layer.cornerRadius = self.imageView.frame.size.width/2;
</code></pre>

<p>但 <code>self.imageView</code> 的框架仍未设置(但稍后我在模拟器上查看时它确实会布局)。布局完成后调用什么方法?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在 View 的 <code>layoutSubviews</code> 方法中调用 <code>super...</code> 后设置圆角半径:</p>

<pre><code>-(void)layoutSubviews{
    ;
    ;
}
</code></pre>

<p>这可确保在尝试应用角半径(在我的情况下是创建圆的高度/宽度的 50%)之前已经发生布局,并且计算正确。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 具有拐角半径的自动布局(带砌体),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/28146330/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/28146330/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 具有拐角半径的自动布局(带砌体)