[英]Swift - the text field returns 0 even though I inserted a different number
[英]insertSubview() covers the whole Mainview even though inserted at 0
我使用以下代碼將 UIView 插入到 UIButton 中:
let backgroundView = UIView()
backgroundView.backgroundColor = .red
backgroundView.translatesAutoresizingMaskIntoConstraints = false
blueButton.insertSubview(backgroundView, at: 0)
NSLayoutConstraint.activate([
backgroundView.leadingAnchor.constraint(equalTo: blueButton.leadingAnchor),
backgroundView.trailingAnchor.constraint(equalTo: blueButton.trailingAnchor),
backgroundView.topAnchor.constraint(equalTo: blueButton.topAnchor),
backgroundView.bottomAnchor.constraint(equalTo: blueButton.bottomAnchor)
])
問題是 backgroundView 覆蓋了整個按鈕,我只看到紅色字段而不是帶有紅色背景(我的子視圖)的按鈕(它的圖像)。
這是我的圖像的故事板部分。 除了嘗試將子視圖放入:
我的目標是有一個如下圖所示的圓形背景。 例如,紅色圓圈按鈕有一個圓形的紅色(但比按鈕紅色更亮)backgroundView。按鈕的標准背景應該保持不變。
我也嘗試將 subView 發送到后台,但它對我不起作用:
blueButton.sendSubviewToBack(backgroundView)
我降低了子視圖的 alpha 值以查看按鈕圖像是否仍然存在。
for view in blueButton.subviews {
view.alpha = 0.5
}
我怎么解決這個問題?
不要將額外的子視圖注入按鈕。 如果目標是使按鈕的背景顏色為紅色,請將其backgroundColor
設置為.red
。 如果目標是在按鈕圖像后面放一些東西,這就是backgroundImage
的用途。 或者只是讓按鈕圖像看起來像你真正想要的圖像。
我做了這個按鈕:
它看起來很像你的照片。 這是代碼:
let im = UIGraphicsImageRenderer(size: CGSize(width: 30, height: 30)).image {
ctx in
UIColor.red.withAlphaComponent(0.2).setFill()
ctx.cgContext.fillEllipse(in: CGRect(x: 0, y: 0, width: 30, height: 30))
UIColor.red.setFill()
ctx.cgContext.fillEllipse(in: CGRect(x: 5, y: 5, width: 20, height: 20))
}
b.setImage(im.withRenderingMode(.alwaysOriginal), for: .normal)
我認為這比處理不需要的非法子視圖要好得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.