我做了一個UIScrollView,它水平滾動。當UIScrollView包含它滾動時,是什麼讓UIView調整回默認狀態?
在UIScrollView中,UIView包含顯示文本的UILabel和隱藏視圖的UIButton。
視圖的寬度隨標籤中的文本被用戶更改,而按鈕保持其大小。
我想讓UIView做的事情是當UIScrollView向左和向右滾動時保持其大小。但是UIView在滾動時會回到原來的大小。
下圖顯示了故事板的設置;兩個矩形是UIViews,UILabels默認都有「Label」文本。字母X是一個按鈕。包含這兩個的水平區域是UIScrollView。
下一個是我在運行模擬器的應用場景。我以編程方式更改這些UIViews的邊框。這些文本是從我製作的菜單中選擇的,UIViews的寬度隨着UILabel的寬度改變而改變。忽視爲什麼兩個標籤都有相同的文字;我沒有處理第二種觀點。即使只有一個UIView,情況也是如此。
當我滾動的UIScrollView到右,出現問題。這些UIViews的寬度將恢復爲故事板中設置的默認值。在選擇了菜單時
Theh下面函數被調用。對不起,這些怪異的變數名稱
//selectedTextPrim, selectedTextSecn: String()
//result1Text, result2Text: UILabel
//result1, result2: UIView
//result1XBtn, result2XBtn: UIButton
func processAddResult(){
result1Text.text = selectedTextPrim + " > " + selectedTextSecn
result1Text.sizeToFit()
result1.frame.size.width = result1Text.frame.size.width + 24
result1XBtn.frame.origin.x = result1Text.frame.maxX
result2.frame.origin.x = result1.frame.maxX + 8
result2Text.text = selectedTextPrim + " > " + selectedTextSecn
result2Text.sizeToFit()
result2.frame.size.width = result2Text.frame.size.width + 24
result2XBtn.frame.origin.x = result2Text.frame.maxX
// print("\(result1Text.frame.size.height)")
}
代碼是否需要更改?或者有什麼辦法通過在某處添加一些代碼來進行管理?