在tabbar'more'选项卡SWIFT中调整webView的大小

时间:2016-08-23 09:56:09

标签: ios swift webview

嗨,我是堆叠溢出的新手,我在一周前遇到了一个问题:

我的IOS应用程序基于UIWebView,位于标签栏的不同标签中,有9个标签,显示完全正常工作但是,“更多”部分中的标签显示全部在网页顶部和底部有一个黑色空间,我想知道如何根据视图占据的空间或如何简单地取出这个黑色空间来调整大小... < / p>

g+ black lines screen capture

感谢 萨沙

更新:修复了顶部但底部的几个像素仍然不是webView的一部分    White Bottom Part Img

1 个答案:

答案 0 :(得分:0)

您需要设置webView的scrollView的contentInset:

webView.scrollView.contentInset = UIEdgeInsetsZero

<强> Deafult

enter image description here

webView.scrollView.contentInset = UIEdgeInsetsZero

enter image description here

完整示例:

使用ViewController的示例,但该想法适用于tabBarController(或带tabBar的viewController)

  

WebViewController.swift

import UIKit

class WebViewController: UIViewController, UIWebViewDelegate {

@IBOutlet var webView: UIWebView!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.


    let startUrl = "http://apple.com"
    if let url = NSURL(string: startUrl) {
        webView.loadRequest(NSURLRequest(URL: url))
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews();

    webView.scrollView.contentInset = UIEdgeInsetsZero
} 
}
  

Main.storyboard

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="fNb-w0-GoK">
<dependencies>
    <deployment identifier="iOS"/>
    <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<scenes>
    <!--View Controller-->
    <scene sceneID="tne-QT-ifu">
        <objects>
            <viewController id="BYZ-38-t0r" sceneMemberID="viewController">
                <layoutGuides>
                    <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
                    <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
                </layoutGuides>
                <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
                    <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                    <subviews>
                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qYE-Qt-Pdb">
                            <rect key="frame" x="277" y="285" width="46" height="30"/>
                            <state key="normal" title="Button"/>
                            <connections>
                                <segue destination="WGg-GA-JYj" kind="show" identifier="toWebViewController" id="X7W-oO-znq"/>
                            </connections>
                        </button>
                    </subviews>
                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                    <constraints>
                        <constraint firstItem="qYE-Qt-Pdb" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="Yp4-rg-uRU"/>
                        <constraint firstItem="qYE-Qt-Pdb" firstAttribute="centerY" secondItem="8bC-Xf-vdC" secondAttribute="centerY" id="hCZ-Me-NTn"/>
                    </constraints>
                </view>
                <navigationItem key="navigationItem" id="ypr-4x-iVU"/>
            </viewController>
            <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
        </objects>
        <point key="canvasLocation" x="1099" y="559"/>
    </scene>
    <!--Web View Controller-->
    <scene sceneID="OnG-Ir-ldX">
        <objects>
            <viewController id="WGg-GA-JYj" customClass="WebViewController" customModule="stackoverflow_39097959" customModuleProvider="target" sceneMemberID="viewController">
                <layoutGuides>
                    <viewControllerLayoutGuide type="top" id="aes-Hs-ALg"/>
                    <viewControllerLayoutGuide type="bottom" id="k9x-oU-rHI"/>
                </layoutGuides>
                <view key="view" contentMode="scaleToFill" id="cnA-Wg-EC0">
                    <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                    <subviews>
                        <webView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1wq-mG-bgW">
                            <rect key="frame" x="0.0" y="64" width="600" height="536"/>
                            <color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="deviceRGB"/>
                        </webView>
                    </subviews>
                    <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                    <constraints>
                        <constraint firstItem="1wq-mG-bgW" firstAttribute="leading" secondItem="cnA-Wg-EC0" secondAttribute="leading" id="6ba-OZ-vfB"/>
                        <constraint firstItem="1wq-mG-bgW" firstAttribute="top" secondItem="aes-Hs-ALg" secondAttribute="bottom" id="Krw-Xl-SDX"/>
                        <constraint firstAttribute="trailing" secondItem="1wq-mG-bgW" secondAttribute="trailing" id="qk7-A7-tXd"/>
                        <constraint firstItem="1wq-mG-bgW" firstAttribute="bottom" secondItem="k9x-oU-rHI" secondAttribute="top" id="scz-71-oN5"/>
                    </constraints>
                </view>
                <navigationItem key="navigationItem" id="1tS-GL-oIH"/>
                <connections>
                    <outlet property="webView" destination="1wq-mG-bgW" id="u7n-Tl-NII"/>
                </connections>
            </viewController>
            <placeholder placeholderIdentifier="IBFirstResponder" id="0Rf-a9-fCM" userLabel="First Responder" sceneMemberID="firstResponder"/>
        </objects>
        <point key="canvasLocation" x="1818" y="559"/>
    </scene>
    <!--Navigation Controller-->
    <scene sceneID="0Hz-no-KQO">
        <objects>
            <navigationController automaticallyAdjustsScrollViewInsets="NO" id="fNb-w0-GoK" sceneMemberID="viewController">
                <toolbarItems/>
                <navigationBar key="navigationBar" contentMode="scaleToFill" id="I39-SK-Dmu">
                    <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
                    <autoresizingMask key="autoresizingMask"/>
                </navigationBar>
                <nil name="viewControllers"/>
                <connections>
                    <segue destination="BYZ-38-t0r" kind="relationship" relationship="rootViewController" id="Zkp-F4-EwR"/>
                </connections>
            </navigationController>
            <placeholder placeholderIdentifier="IBFirstResponder" id="ptJ-Hj-WO2" userLabel="First Responder" sceneMemberID="firstResponder"/>
        </objects>
        <point key="canvasLocation" x="378" y="559"/>
    </scene>
</scenes>
</document>

在您的项目中:

另外,我修复了你的storyboard viewController。你设置了错误的约束。

enter image description here

  

块引用