首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在图像视图周围形成圆圈边框

如何在图像视图周围形成圆圈边框
EN

Stack Overflow用户
提问于 2017-12-13 15:46:35
回答 1查看 71关注 0票数 0

我有一个垂直的堆栈视图,对齐前导,顶部和尾随到安全区,所以它有最大的宽度。

除其他外,它还包含另一个垂直堆栈视图,该视图具有尾随和引导到其superview 30的空间,并且包含(仅)两个非常相似的水平堆栈视图。

两者都没有额外的约束,间距为30。

第一幅图像包含三幅图像,所有图像的约束比为1:1,图像源也是二次型的。它们被设置为方面适合并具有运行时属性layer.borderWidth: 1

为了获得一个白色圆圈作为边框,我为第一个水平堆栈视图创建了一个出口,并调用:

代码语言:javascript
复制
let white = UIColor(white:1, alpha:1).cgColor
for v in imageStackView.subviews {
    v.layer.borderColor = white
    v.layer.cornerRadius = (v.layer.bounds.size.width/2)
    v.layer.masksToBounds = true
}

在我的函数viewDidLoad()里。编辑:按照建议,我把它移到了viewDidLayoutSubviews()

当我启动应用程序,我得到圆角,但没有完整的圆圈。我发现这种方法可以在网上得到一个圆圈,它曾经适用于我。这次我做错什么了?

这是我的全部场景:

代码语言:javascript
复制
    <scene sceneID="l8R-Sc-Iim">
        <objects>
            <viewController id="glE-1m-7jE" customClass="MenuViewController" customModule="MyProjekt" customModuleProvider="target" sceneMemberID="viewController">
                <view key="view" contentMode="scaleToFill" id="wz6-0R-OiW">
                    <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                    <subviews>
                        <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="ZNX-E4-fJI">
                            <rect key="frame" x="0.0" y="20" width="320" height="278.5"/>
                            <subviews>
                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Titel" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uJa-bI-tyq">
                                    <rect key="frame" x="63" y="0.0" width="194.5" height="20.5"/>
                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                    <nil key="highlightedColor"/>
                                </label>
                                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="auto" translatesAutoresizingMaskIntoConstraints="NO" id="TUi-ah-W5J">
                                    <rect key="frame" x="0.0" y="50.5" width="320" height="100.5"/>
                                    <constraints>
                                        <constraint firstAttribute="width" secondItem="TUi-ah-W5J" secondAttribute="height" multiplier="1946:613" id="9o7-vb-64J"/>
                                    </constraints>
                                </imageView>
                                <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="CK2-GV-eAN">
                                    <rect key="frame" x="30" y="181" width="260" height="97.5"/>
                                    <subviews>
                                        <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="4ag-dE-MkJ">
                                            <rect key="frame" x="0.0" y="0.0" width="260" height="67"/>
                                            <subviews>
                                                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sonne" translatesAutoresizingMaskIntoConstraints="NO" id="rKB-oI-ZlW">
                                                    <rect key="frame" x="0.0" y="0.0" width="66.5" height="67"/>
                                                    <gestureRecognizers/>
                                                    <constraints>
                                                        <constraint firstAttribute="width" secondItem="rKB-oI-ZlW" secondAttribute="height" multiplier="1:1" id="Yjh-dy-ha5"/>
                                                    </constraints>
                                                    <userDefinedRuntimeAttributes>
                                                        <userDefinedRuntimeAttribute type="number" keyPath="layer.BorderWidth">
                                                            <integer key="value" value="1"/>
                                                        </userDefinedRuntimeAttribute>
                                                        <userDefinedRuntimeAttribute type="boolean" keyPath="userInteractionEnabled" value="YES"/>
                                                    </userDefinedRuntimeAttributes>
                                                    <connections>
                                                        <outletCollection property="gestureRecognizers" destination="JyJ-E7-IQF" appends="YES" id="Z9S-0C-Vb1"/>
                                                    </connections>
                                                </imageView>
                                                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="schnee" translatesAutoresizingMaskIntoConstraints="NO" id="TNu-EP-zpf">
                                                    <rect key="frame" x="96.5" y="0.0" width="67" height="67"/>
                                                    <gestureRecognizers/>
                                                    <constraints>
                                                        <constraint firstAttribute="width" secondItem="TNu-EP-zpf" secondAttribute="height" multiplier="1:1" id="uWO-vX-Y9D"/>
                                                    </constraints>
                                                    <userDefinedRuntimeAttributes>
                                                        <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                            <integer key="value" value="1"/>
                                                        </userDefinedRuntimeAttribute>
                                                    </userDefinedRuntimeAttributes>
                                                </imageView>
                                                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sonne schnee" translatesAutoresizingMaskIntoConstraints="NO" id="SLM-td-gnU">
                                                    <rect key="frame" x="193.5" y="0.0" width="66.5" height="67"/>
                                                    <gestureRecognizers/>
                                                    <constraints>
                                                        <constraint firstAttribute="width" secondItem="SLM-td-gnU" secondAttribute="height" multiplier="1:1" id="1RH-Xt-phM"/>
                                                    </constraints>
                                                    <userDefinedRuntimeAttributes>
                                                        <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                            <integer key="value" value="1"/>
                                                        </userDefinedRuntimeAttribute>
                                                    </userDefinedRuntimeAttributes>
                                                </imageView>
                                            </subviews>
                                        </stackView>
                                        <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="1GK-qd-V3k">
                                            <rect key="frame" x="0.0" y="77" width="260" height="20.5"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eWU-mM-aQq">
                                                    <rect key="frame" x="0.0" y="0.0" width="73.5" height="20.5"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                                    <nil key="highlightedColor"/>
                                                    <userDefinedRuntimeAttributes>
                                                        <userDefinedRuntimeAttribute type="boolean" keyPath="adjustsFontSizeToFitWidth" value="YES"/>
                                                    </userDefinedRuntimeAttributes>
                                                </label>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text2" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wyW-jR-92l">
                                                    <rect key="frame" x="93.5" y="0.0" width="73" height="20.5"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                                    <nil key="highlightedColor"/>
                                                    <userDefinedRuntimeAttributes>
                                                        <userDefinedRuntimeAttribute type="boolean" keyPath="adjustsFontSizeToFitWidth" value="YES"/>
                                                    </userDefinedRuntimeAttributes>
                                                </label>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text3" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xU9-ez-ESX">
                                                    <rect key="frame" x="186.5" y="0.0" width="73.5" height="20.5"/>
                                                    <fontDescription key="fontDescription" type="system" pointSize="11"/>
                                                    <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                                    <nil key="highlightedColor"/>
                                                    <userDefinedRuntimeAttributes>
                                                        <userDefinedRuntimeAttribute type="boolean" keyPath="adjustsFontSizeToFitWidth" value="YES"/>
                                                    </userDefinedRuntimeAttributes>
                                                </label>
                                            </subviews>
                                        </stackView>
                                    </subviews>
                                    <color key="backgroundColor" red="0.17254901959999999" green="0.1843137255" blue="0.21960784310000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                </stackView>
                            </subviews>
                            <constraints>
                                <constraint firstItem="CK2-GV-eAN" firstAttribute="leading" secondItem="ZNX-E4-fJI" secondAttribute="leading" constant="30" id="Rao-NT-glY"/>
                                <constraint firstAttribute="trailing" secondItem="CK2-GV-eAN" secondAttribute="trailing" constant="30" id="pcQ-0c-3S0"/>
                            </constraints>
                        </stackView>
                    </subviews>
                    <color key="backgroundColor" name="BackGroundColor"/>
                    <constraints>
                        <constraint firstItem="ZNX-E4-fJI" firstAttribute="top" secondItem="g2X-8E-oXv" secondAttribute="top" id="UcU-d5-McW"/>
                        <constraint firstItem="ZNX-E4-fJI" firstAttribute="leading" secondItem="g2X-8E-oXv" secondAttribute="leading" id="vTj-Mg-hRR"/>
                        <constraint firstAttribute="trailing" secondItem="ZNX-E4-fJI" secondAttribute="trailing" id="xoI-wD-OZz"/>
                    </constraints>
                    <viewLayoutGuide key="safeArea" id="g2X-8E-oXv"/>
                </view>
                <connections>
                    <outlet property="imgbtnContainer" destination="4ag-dE-MkJ" id="4Lu-zC-X56"/>
                    <outlet property="sommerImage" destination="rKB-oI-ZlW" id="9vz-9A-XjX"/>
                    <outlet property="titleLabel" destination="uJa-bI-tyq" id="xl7-VX-CR4"/>
                </connections>
            </viewController>
            <placeholder placeholderIdentifier="IBFirstResponder" id="75A-bF-ATY" userLabel="First Responder" sceneMemberID="firstResponder"/>
            <tapGestureRecognizer id="JyJ-E7-IQF">
                <connections>
                    <segue destination="AeH-xq-It1" kind="presentation" id="tXW-Ch-LPs"/>
                </connections>
            </tapGestureRecognizer>
        </objects>
        <point key="canvasLocation" x="1759" y="117"/>
    </scene>
EN

回答 1

Stack Overflow用户

发布于 2017-12-13 15:50:05

在执行这段代码时,您的视图很可能没有布局。您应该在viewDidLayoutSubviews中运行舍入代码。

代码语言:javascript
复制
override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    let white = UIColor(white:1, alpha:1).cgColor
    [...]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47797082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档