im.sacha im.sacha - 3 months ago 21
Swift Question

resize webView in tabbar 'more' tab SWIFT

Hi i'm new to stack overflow, i ran into a problem about a week ago:

My IOS app is based off of

UIWebView
that are into different tabs of the tabbar, there are 9 tabs, the ones that show up fully work perfectly but then, the ones in the 'More' section appear all bugged out and there is a black space on top and on the bottom of the webView, i'd like to know how to make it resize accordingly to the space the view can occupy or how to simply take out this black space...

g+ black lines screen capture

thanks
Sacha

UPDATE: Fixed the top part but a few pixels in the bottom still aren't part of the webView
White Bottom Part Img

Answer

You need to set contentInset of the webView's scrollView:

webView.scrollView.contentInset = UIEdgeInsetsZero

Deafult

enter image description here

webView.scrollView.contentInset = UIEdgeInsetsZero

enter image description here

Full example:

Example with ViewController, but the idea is suitable for the tabBarController(or viewController with tabBar)

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>