标签: uiview

使用UIBezierPath在Swift中进行sunburst

我想用UIBezierPath制作这个UIView:

在此输入图像描述

有可选的旋转功能(虽然如果我知道如何绘制旭日(我称之为视图),我可以自己制作)

答案在目标C中给出:https://stackoverflow.com/a/14991292/7715250

我尝试使用此代码在Swift中转换它(Playground中的复制粘贴将起作用):

import UIKit

class SunBurst: UIView{
    override func draw(_ rect: CGRect) {
        let radius: CGFloat = rect.size.width / 2.0
        UIColor.red.setFill()
        UIColor.blue.setStroke()
        let bezierPath = UIBezierPath()
        let centerPoint = CGPoint(x: rect.origin.x + radius, y: rect.origin.y + radius)
        var thisPoint = CGPoint(x: centerPoint.x + radius, y: centerPoint.y)
        bezierPath.move(to: centerPoint)
        var thisAngle: CGFloat = 0.0
        let sliceDegrees: CGFloat = 360.0 / 20 / 2.0
        let half: CGFloat = 180
        let floatRadius = Float(radius)

        for _ in 0..<20 …
Run Code Online (Sandbox Code Playgroud)

objective-c uiview ios uibezierpath swift

0
推荐指数
1
解决办法
110
查看次数

使用Swift 3中的SnapKit以编程方式修改约束以删除一个UIView

我正在修改UIView高度的约束,包括nameTextField和使用SnapKit的superView inputContainerView.我安排nameTextField的高度等于inputContainerView的高度的三分之一.我的目的是在按下SegmentedControl时删除nameTextField.当我尝试修改常量时,它工作得很好.但是当我尝试将乘数高度值从(1/3)修改为0时,有时它会崩溃,有时我写的其他textField(passwordTextField和emailTextField)也会消失.我正在使用updateContraint来更新一些约束.我该如何解决这个问题?谢谢

inputContainerView.snp.makeConstraints { (make) in
        make.centerX.equalTo(view.snp.centerX)
        make.centerY.equalTo(view.snp.centerY)
        // constraintAnchor is equal to offset
        make.width.equalTo(view.snp.width).offset(-24)
        make.height.equalTo(150)
    }

    // constraint for nameTextField
    inputContainerView.addSubview(nameTextField)
    //x y width height constraint using Snap Kit
    nameTextField.snp.makeConstraints { (make) in
        make.left.equalTo(inputContainerView.snp.left).offset(12)
        make.top.equalTo(inputContainerView.snp.top)
        make.width.equalTo(inputContainerView.snp.width)
        make.height.equalTo(inputContainerView.snp.height).multipliedBy(0.333)
    }
func handleLoginRegisterChange() {
    let title = loginRegisterSegmentedControl.titleForSegment(at: loginRegisterSegmentedControl.selectedSegmentIndex)
    loginRegisterButton.setTitle(title, for: .normal)

    // change height of inputcontainerview
    if loginRegisterSegmentedControl.selectedSegmentIndex == 0 {
        inputContainerView.snp.updateConstraints({ (update) in
            update.height.equalTo(100)
        })
        nameTextField.snp.remakeConstraints({ (remake) in
            remake.height.equalTo(inputContainerView.snp.height).multipliedBy(0)
        })
    } else if loginRegisterSegmentedControl.selectedSegmentIndex == 1 {
        inputContainerView.snp.updateConstraints({ (update) in …
Run Code Online (Sandbox Code Playgroud)

uiview ios swift snapkit

0
推荐指数
1
解决办法
3399
查看次数

UIViewPropertyAnimator与Autolayout的问题

以下是我尝试根据Apple WWDC重复但使用自动布局的代码:

    extension AugmentedReallityViewController {
    @objc func handlePan(recognizer: UIPanGestureRecognizer) {
//        // hide languages and units anyway
//        moveUnitView(show: false)
//        moveLanguageView(show: false)
//
//        let isNowExpanded = settingsPanelState == SettingsPanelState.expanded
//        let newState = isNowExpanded ? SettingsPanelState.collapsed : SettingsPanelState.expanded
//
//        switch recognizer.state {
//        case .began:
//            startInteractiveTransition(state: newState, duration: 1)
//            isLastPanelUpdateToReachTheNewState = true // just in case, but we should change this property later
//        case .changed:
//            let translation = recognizer.translation(in: viewSettings)
//            let fractionComplete …
Run Code Online (Sandbox Code Playgroud)

iphone core-animation uiview ios uiviewpropertyanimator

0
推荐指数
1
解决办法
870
查看次数

Swift 3在同一个UIView中放了2种颜色

我想在UIViews和UIImageViews上实现这个效果:

的UIImageView

的UIView

在UIView上,我知道我可以用不同的颜色在其中放置2,但我认为必须有更好的方法,我不知道如何在UIImageVIew中做到这一点.某种pod会非常有用,因为我找不到它.

uiview uiimageview ios swift

0
推荐指数
1
解决办法
2430
查看次数

我应该如何以编程方式更新动态视图的约束?

我想知道更新视图/约束的最佳实践,以获得具有多个可能(可见)子视图的动态视图.在这个简单的例子中,假设我想要一个可能有两个"状态" 的自定义 UITableViewCell,一个带有标题和一个正文标签,另一个只带有正文标签,如下图所示.重要提示:我不是在寻找创建这两种状态的方法,这只是一个例子.我知道有一个常规单元subtitle可以达到这个目的,但我真正的问题是更复杂.

第一州:

第一州

第二州:

第二州

一种选择是创建这两个单元作为独立的单元,但我想看看是否有任何"接受"的方式,使单个细胞(第一个),并让它在各种状态显示-最好是不用处理一个大量的程序化国家.

首先,我假设两个标签都必须限制在细胞本身的顶部边缘.如果我不这样做,两个国家都不可能,对吧?或者是否有另一种方法从第一个视图获得第二个状态?

应该如何设置约束,以及如何在代码中处理它们 - 以实现具有不同布局的单个视图?

constraints uiview ios

0
推荐指数
1
解决办法
81
查看次数

如何更改UIview的边框颜色?

我希望在按下时更改uiview的边框颜色,并在释放后返回到正常的边框颜色.这样做的最佳做法是什么?

如下图所示: 在此输入图像描述

uiview ios swift

0
推荐指数
1
解决办法
1352
查看次数

从VC1传递并显示相同的视图到VC2

我有一个视图(在我的情况下为MGLMapview:mapboxView),该视图显示在我的第一个VC中。我希望我的第二个VC显示相同的视图。

所以从VC1到VC2我做到了:

self.VC2.mapView = self.mapView

self.navigationController?.pushViewController(self.VC2, animated: true)
Run Code Online (Sandbox Code Playgroud)

然后在VC2的viewDidLoad中:

view.addSubview(mapView)
Run Code Online (Sandbox Code Playgroud)

我的问题是什么也没出现。但是,当我在第二个VC中打印mapView的大小和高度时,它不为零。

我想念什么吗?

感谢您的帮助

uikit uiview ios mapbox swift

0
推荐指数
1
解决办法
88
查看次数

视图的所有四个角均具有不同的半径

我如何设计一个UIView,其所有4个角均具有不同的角半径。因此,UIView的右上角半径为20,左上角半径为30,左下角半径为10,右下角半径为20

查看层次结构

我想向图像所示的Viw容器添加不同的cornerRadius。使用UIBEZIER方法会切断共享评论和喜欢的部分。viw容器固定在单元格上

uiview ios swift

0
推荐指数
1
解决办法
229
查看次数

Swift View Controller不会关闭

所以我在Xcode中有一个基本的游戏。我从Xcode的基本游戏模板开始,然后主要在“ GameScene.swift”内部构建游戏。当我完成游戏时,我想添加一个带有播放按钮的开始屏幕,因此我制作了一个新的UIViewController并添加了一个按钮。我控制单击并将按钮拖动到GameViewController并创建一个Modal Segue。然后,我希望游戏在玩家死亡时返回。我尝试了各种方法来消除这种观点,但是没有一种有效。我是新手,确实需要帮助。让我知道查找解决方案所需的代码/信息。我已经尝试了在互联网上找到的所有内容。我以为我找到了解决方法,在GameViewController的菜单上添加了一个按钮和Segue,但是多次按下后,它阻塞了系统,并且由于没有被解雇而变慢了爬行速度。

在GameViewController类的GameViewController.swift内部,我尝试制作一个在游戏结束时调用的函数。我试图同时弹出和关闭视图控制器。调用了该函数,并在控制台上打印了一行,但视图仍然存在。打印到控制台的唯一内容是“ nil”

class GameViewController: UIViewController {
   func end(){
     print(navigationController?.viewControllers as Any)
     self.navigationController?.popViewController(animated: true)
     self.dismiss(animated: true, completion: nil)
   }
Run Code Online (Sandbox Code Playgroud)

@ Vollan继承人的图片

这是情节提要的屏幕截图

提前致谢。

xcode uiview swift

0
推荐指数
1
解决办法
1142
查看次数

加载UIWebView时显示SVProgressHUD

UIWebView有一套作为视图ViewController。我想SVProgressHUD在网页加载时显示活动指示器,然后在完成时将其关闭,但似乎无法正常工作。网页加载正常,但是该指示器从不显示。我知道SVProgressHUD设置正确且功能正确,但我所拥有的功能却不正确。

我相信,因为我UIWebView实际上没有在IB的场景中,而是ViewController将视图设置为UIWebView,我正在使用的代码无法将其定位。如果我错了,请纠正我。

这是我的代码:

import UIKit
import SVProgressHUD

class ViewController: UIViewController, UIWebViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()



        if let url = URL(string: "https://www.google.com") {
            let webView = UIWebView(frame: self.view.frame)
            let urlRequest = URLRequest(url: url)
            webView.loadRequest(urlRequest as URLRequest)
            webView.scalesPageToFit = true;
            webView.scrollView.showsHorizontalScrollIndicator = false;
            webView.scrollView.showsVerticalScrollIndicator = false;
            self.view.addSubview(webView)


        }
    }

    func webViewDidStartLoad(_ webView: UIWebView) {
        SVProgressHUD.show()
    }
    func webViewDidFinishLoad(_ webView: UIWebView) {
        SVProgressHUD.dismiss()
    }
    func webView(_ webView: …
Run Code Online (Sandbox Code Playgroud)

uiwebview uiview ios svprogresshud swift

0
推荐指数
1
解决办法
148
查看次数