@a9wtPrLyjKTbNH0 you could play with this script but I'm almost sure that @mikael would give a better way with his anchor module
import ui
from objc_util import *
@on_main_thread
class MyTextViewDelegate (object):
def textview_did_change(textview):
tvo = ObjCInstance(textview)
cgs = tvo.sizeThatFits_(CGSize(textview.width,2000))
textview.height = cgs.height
sv = textview.superview
sv.content_size = (sv.width,sv['iv'].height+textview.height+4)
sv = ui.ScrollView()
sv.frame = (0,0,400,600)
sv.background_color = 'white'
iv = ui.ImageView(name='iv')
iv.frame = (0,0,sv.width,200)
iv.image = ui.Image.named('test:Peppers')
sv.add_subview(iv)
tv = ui.TextView()
tv.delegate = MyTextViewDelegate
tv.frame = (2,iv.height+2,sv.width-4,100)
tv.border_width = 1 # only to show height automatically varying
tv.border_color = 'blue'
tv.corner_radius = 5
tv.text = 'a\n'*20
sv.add_subview(tv)
tv.delegate.textview_did_change(tv) # only to compute initial height
sv.present('sheet')