UIScrollViewを作成し、それを水平方向にスクロールします。UIViewを含むUIScrollViewをスクロールしたときに、UIViewがデフォルトに戻されるのはなぜですか?
UIScrollViewの内部には、UIViewにはテキストを表示するUILabelとビューを非表示にするUIButtonがあります。
ラベルのテキストがユーザーによって変更されると、ビューの幅が変更されますが、ボタンのサイズは変更されません。
私がUIViewに実行させたいのは、UIScrollViewが左右にスクロールされたときにそのサイズを保持することです。しかし、UIViewはスクロールすると元のサイズに戻ります。
以下の画像は、ストーリーボードの設定を示しています。 2つの矩形はUIViewであり、それぞれのUILabelにはデフォルトで「ラベル」のテキストがあります。文字Xはボタンです。これらの2つを含む水平領域はUIScrollViewです。
次は私がシミュレータでアプリを実行するシーンです。私はこれらのUIViewの境界線をプログラムによって変更しました。これらのテキストは、私が作ったメニューから選択され、UILabelsの幅が変わるとUIViewの幅が変更されます。両方のラベルが同じテキストを持つ理由を無視してください。私は第2の視点を扱っていませんでした。大文字小文字の区別は1つのUIViewであっても同じです。
私は右にUIScrollViewのをスクロールすると、問題が発生します。これらのUIViewの幅は、ストーリーボードに設定されたデフォルトに戻ります。メニューが選択されたときに、以下の
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)")
}
コードを変更する必要がありますか?または、どこかにコードを追加してこれを管理する方法はありますか?