如何在swift 3中自定义按钮的大小?

时间:2017-06-02 07:34:16

标签: ios swift

我想将按钮调整为正方形,这是我的代码:

    let button = UIButton()
    button.backgroundColor = UIColor.red

    button.translatesAutoresizingMaskIntoConstraints = false

    //method one 
    //button.widthAnchor.constraint(equalToConstant:44.0).isActive = true
    //button.heightAnchor.constraint(equalToConstant: 44.0).isActive = true
    //method two
    button.frame.size = CGSize(width: 20.0, height: 20.0)

    button.addTarget(self, action: #selector(ratingButtonTapped(button: )), for: .touchUpInside)
    addArrangedSubview(button)

我已经尝试过这两种方法,但是没有一种方法似乎能够很好地解决方法一中出现错误并且方法二中没有显示任何错误。当我运行代码时,按钮在容器中完成。这有什么不对?

2 个答案:

答案 0 :(得分:5)

使用addSubview()而不是addArrangedSubview()。

我在这里写的操场上有我在评论中发布的相同解决方案,以防有人遇到同样的问题:

Swift 3.0:

ShinyUi <- fluidPage(

  # Application title
  titlePanel("title"),

  sidebarLayout(
    sidebarPanel(
      ... inputs ...
    ),

    mainPanel(
          plotlyOutput("distPlot", height = 'auto', width = 'auto')
      )
  ))

ShinyServer <- function(input, output, session) {

   output$distPlot <- renderPlotly({

    p <- ggplot(dataShow, aes(x=dataShow$X, y=dataShow$Y))  + 
geom_point(shape=1, alpha = 0.5, color = "grey50")

    ggplotly(p)

  })

}


# Run the application 
shinyApp(ui = ShinyUi, server = ShinyServer)

答案 1 :(得分:-2)

为什么不创建按钮并使用给定的大小初始化它?

let btn = UIButton(frame: CGRect(x: 0, y: 0, width: 20, height: 20))

然后相应地更改x和y