标签: uiview

手动调用Drawrect

我正在创建一个带UIBezierPath绘图的自定义视图.我想根据服务器的响应状态更改时更新自定义视图填充颜色.我使用fillColor属性作为参数来更新视图的颜色.我怎样才能以fillcolor编程方式更改?

iphone objective-c uiview ios

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

Objective-C - 如何做异常捕获并避免让应用程序崩溃?

当我从我的按钮几次调用此函数时(比如疯了几次),然后我的应用程序崩溃而不是抛出异常而忽略.

当异常发生时你怎么忽略崩溃?

localView的位置UIView *localView.

- (void)smallLocalView {
  @try {
    self.localView.backgroundColor = [UIColor blackColor];
    [self.localView.layer removeFromSuperlayer];
      //self.localView.opaque = NO;
  }
  @catch(NSException *exp) {
      //NSLog(@">>> failed %@" , exp.reason);
    NSLog(@"OK - but dont crash!!!");
  }
  @finally {
    NSLog(@"OK - but dont crash!!!");
  }

}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

编辑:

在此输入图像描述

objective-c uiview ios

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

更改UIView边框的形状

我想知道如何实现UIView的波状边界.这可以通过UIView一个人来实现吗?或者通过UIImageView创建这个外观是要走的路?

一个例子可能类似于: 在此输入图像描述

谢谢你的帮助!

user-interface uiview uiimageview ios swift

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

removeFromSuperview()并不总是有效

我声明了一个名为var progressBar的UIView变量:UIView?

并使用此功能显示或隐藏视图

func showProgressBar(showBar: Bool){
if showBar{
            let viewHeight = view.frame.size.height
            progressBar = Bundle.main.loadNibNamed("progressBar", owner: nil, options: nil)?.first as? UIView
            progressBar?.frame = CGRect(x: 0, y: viewHeight - 80 , width: self.view.frame.width, height: 80)
            if let bar = progressBar{
                self.view.addSubview(bar)
            }
        }else{
            DispatchQueue.main.async() {
                self.progressBar?.removeFromSuperview()
            }
        }
Run Code Online (Sandbox Code Playgroud)

有时当我在视图之间导航时,我无法隐藏进度条,即使self.progressBar?.removeFromSuperview()执行时也是如此.在我看来,如果视图已经丢失了对旧进度条的引用...你对这个问题以及如何解决这个问题有所了解吗?

uiview ios swift

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

迅速删除对UIView的引用

我想在点击时完全删除对UIView的引用(它是一个子视图。

@IBAction private func handleTap(_ sender: UITapGestureRecognizer) {
    if (delegate != nil) {
        delegate?.imageWasTapped(imageView.image!, photoURL: photoURL!)
        self.removeFromSuperview()
    }
    print ("tap")
}
Run Code Online (Sandbox Code Playgroud)

removeFromSuperview()似乎不足以完全删除实例(根据我的阅读),因此想

self = nil
Run Code Online (Sandbox Code Playgroud)

但是自我当然是一成不变的。

我试图将值作为inout参数传递给我的超级视图,但是self仍然是不变的。

        delegate?.imageWasTapped(imageView.image!, photoURL: photoURL!, imageView: self)
Run Code Online (Sandbox Code Playgroud)

是否足以从内存中取消分配UIView的removeFromSumerview(),或如何做到最好?

memory uiview ios swift

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

如何将UIActivityIndi​​catorView集中在UICollectionViewCell中?

我试图在下载其图像时在每个集合视图单元格中放置一个UIActivityIndi​​catorView.我把它出现在每个细胞中,但它拒绝自我中心.它停留在左上角.我怎样才能让它正确居中?

我是这样做的:

extension UIView {

    func showActivityIndicator(onView: UIView, withIndicator: UIActivityIndicatorView) {
        withIndicator.frame = CGRect(x: onView.frame.midX - 20, y: onView.frame.midY - 20, width: 40, height: 40)
        withIndicator.activityIndicatorViewStyle = .whiteLarge
        withIndicator.center = onView.center
        onView.addSubview(withIndicator)
        withIndicator.startAnimating()
    }
}
Run Code Online (Sandbox Code Playgroud)

我在cellForItemAtIndexPath中调用该函数,如:

showActivityIndicator(onView: cell.contentView, withIndicator: activityInd)
Run Code Online (Sandbox Code Playgroud)

但我所做的一切都不会从左上角移动它.有什么建议?

uiview ios uicollectionview uicollectionviewcell swift

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

UiView中的IOS swift avplayer如何让它工作

我是新手使用AVPlayer for IOS swift并使其正常工作.但是我希望视频在UIView中播放,现在视频默认占用整个页面.我一直在尝试一些事情,这里没有任何作用是我的代码.我在该页面上有其他内容,这就是为什么我希望UIVIEW中的avplayer被称为newView,当我把下面的代码放到它时给我一个错误.我一直在UIView层中关注此示例AVPlayerLayer Position

    import UIKit
import AVFoundation
import WebKit
import AVKit

class ExampleTable: UIViewController {
    @IBOutlet weak var newView: UIView!

    let avPlayerViewController = CustomAVPLayerC()
    var playerView: AVPlayer?
    var AVLayer: AVPlayerLayer?


    override func viewDidAppear(_ animated: Bool) {

        let movieURL:NSURL? = NSURL(string: "my url")

        playerView = AVPlayer(url: movieURL! as URL)
        avPlayerViewController.player = playerView
        playerView?.isMuted = true
  avPlayerViewController.view.frame = newView.frame
   newView.addSubview(avPlayerViewController.view)
   addChildViewController(avPlayerViewController)
        self.present(self.avPlayerViewController, animated: true) {
            self.avPlayerViewController.player?.play()

        }

    }

    override func viewDidLoad() {
        super.viewDidLoad()

    }


} …
Run Code Online (Sandbox Code Playgroud)

uiview ios avplayer swift swift3

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

如何从UIView到ViewController获取按钮?

我在自定义视图上创建了包含一个标签和按钮,我在UIView类中创建了两个插座

在此输入图像描述

我有一个UIViewController,其中我有自定义视图现在我想要更改标签名称并希望在按钮单击时执行某些操作.

let commonView = UINib(nibName: "CommonView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! CommonView
        firstView.addSubview(commonView)


        commonView.lblCommon.text = "We can change label in particular Screen"
Run Code Online (Sandbox Code Playgroud)

我能够更改标签文本但是如何在UIViewcontroller中获取按钮操作事件?

uiviewcontroller uiview ios swift

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

在iOS中,将视图添加为子视图与将视图分配给视图属性之间是否存在差异?

我试图理解iOS编程中的任何歧义,所以我看过开发人员将其主视图分配给viewController的view属性的教程,如下所示:

let sceneView = ARSCNView(frame: self.view.frame)
view = sceneView
Run Code Online (Sandbox Code Playgroud)

但是我也看到开发人员将他们的主视图作为子视图添加到view属性,如下所示:

let sceneView = ARSCNView(frame: self.view.frame)
view.addSubView(sceneView)
Run Code Online (Sandbox Code Playgroud)

这两个过程是相同的还是不同的?

uiviewcontroller uiview addsubview ios

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

如何在另一个单元格的视图中加载一个单元格?

它是我的内心细胞

上面的是我的内心细胞。我想将此单元格加载到下面的单元格中。内部单元的数量是动态的。 在此处输入图片说明

上面的是我的主要单元格。红色部分是UIView。我想将一些innerCell动态地添加到UIView中。我尝试了以下代码

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let mainCell = tableView.dequeueReusableCell(withIdentifier: "FlightCellMain", for: indexPath) as? FlightCellMain
    let innerCell = tableView.dequeueReusableCell(withIdentifier: "FlightCell", for: indexPath) as? FlightCell


    mainCell?.flightCellView.addSubview(innerCell!)
    mainCell?.backgroundColor = .clear
    innerCell?.backgroundColor = .clear
   // innerCell?.innerCellWidthConst.constant = (mainCell?.mainView.frame.width)!
    self.showStopsView(2, self.airportlist, (innerCell?.leftRound)!, (innerCell?.rightRound)!, (innerCell?.centerLine)!, (innerCell?.routeView)!)
    mainCell?.flightCellViewHieghtConst.constant = (mainCell?.flightCellViewHieghtConst.constant)! + 125
    innerCell?.layoutIfNeeded()
    mainCell?.layoutIfNeeded()
    return mainCell!
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但是结果就是这样。我提供了自动布局。当我分别运行两个单元格时,它适合其内容。我在做什么错?

在此处输入图片说明

上面的图片是我试图实现的模型。航班数量详细信息是动态的。

uitableview uiview ios swift

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