【问题标题】:How to Put UIView subview In Places如何将 UIView 子视图放置在适当的位置
【发布时间】:2017-03-08 04:35:54
【问题描述】:

例如,假设我有一个要显示的 UIView

view.addSubview(line)

现在我希望能够在右上角显示该 UIView。让我们说在导航栏的右侧。我该怎么做?甚至在特定的地方。

【问题讨论】:

  • 你能告诉 UI 你期望的输出类型吗

标签: ios swift uiview


【解决方案1】:

您将需要计算框架或需要为该视图提供约束。

let screenSize = UIScreen.main.bounds
let screenWidth = screenSize.width
let screenHeight = screenSize.height

从上面您可以获得屏幕宽度,您可以将 y 设置为 0。假设您的视图的宽度高度为 20。因此,框架如下所示。

yourView.frame = CGRect(x:screenwidth - 20 , y: 20, width:20 , height: 20)

您可以根据需要更改框架。

对于导航栏,有一个更好的方法是添加右栏项目。看看下面的代码怎么做。

self.navigationItem.rightBarButtonItem = rightButtonItem

【讨论】:

  • 你看到了吗inside the right side of the navigation bar.
  • @Anbu.Karthik 哦,我错过了
【解决方案2】:

你可以使用

self.navigationController?.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: lineMat)

在导航栏右侧设置视图。

您还可以在UIApplication.shared.keyWindow 上添加lineMat 视图

只需使用UIApplication.shared.keyWindow?.addSubview(lineMat) 并设置为lineMat 视图的框架。

【讨论】:

    【解决方案3】:

    为您的子视图添加一个框架,如:

    目标-C:

    line.frame = CGRectMake(0, 0, 50, 50);
    

    斯威夫特 3:

    CGRect(x:0,y:0,width: 50,height: 50) 
    

    这将在左上角添加您的线子视图,高度为 50,宽度为 50。

    【讨论】:

    • Swift 3: CGRect(x:0,y:0,width: 50,height: 50)
    • 非常感谢!
    • 谢谢@nil。添加快速部分来回答:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2017-01-24
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 2019-08-01
    相关资源
    最近更新 更多