Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 当我有多个文本视图时,如何动态修复scrollView?_Iphone_Objective C_Xcode_Interface Builder_Ios 4.2 - Fatal编程技术网

Iphone 当我有多个文本视图时,如何动态修复scrollView?

Iphone 当我有多个文本视图时,如何动态修复scrollView?,iphone,objective-c,xcode,interface-builder,ios-4.2,Iphone,Objective C,Xcode,Interface Builder,Ios 4.2,我有一个scrollView,它在detailView中由3个文本视图、按钮和标签组成。我使用3文本视图,因为我需要我的视图标题,日期和描述不同的字体。问题是,有时描述很长,有时描述很小,标题也一样。然后视图就一点也不好了,因为标题和描述之间有很多空白。是否可以动态设置textView和scroll view的大小,或者是否有更好的方法来解决此问题。thanx提前您可以通过将起始帧设置为: CGRectMake (0.0, 0.0, [yourString count]*10, 30.0);

我有一个scrollView,它在detailView中由3个文本视图、按钮和标签组成。我使用3文本视图,因为我需要我的视图标题,日期和描述不同的字体。问题是,有时描述很长,有时描述很小,标题也一样。然后视图就一点也不好了,因为标题和描述之间有很多空白。是否可以动态设置textView和scroll view的大小,或者是否有更好的方法来解决此问题。thanx提前

您可以通过将起始帧设置为:

CGRectMake (0.0, 0.0, [yourString count]*10, 30.0);

这就是我在让UIPopover提供变量名时所做的。

您需要调整文本视图的框架,以匹配其各自的内容大小(请参阅此处的顶部答案:如何做到这一点,请使用textview的contentSize属性),然后根据所有控件的帧调整scrollView的contentSize

假设文本视图是连续垂直放置的(如果有间距等,只需调整代码):


我将所有文本视图和按钮依次放在scrollView中,然后我尝试按照你在代码中所说的做。但是它不起作用,你需要更准确地表达你说“它不起作用”的意思。什么不起作用?文本视图与内容的大小,或框架的位置,或两者兼而有之?我喜欢在正确放置视图时为视图设置不同的背景色,这有助于突出显示它们的位置每个textView的框架应该从其上部textView框架结束的位置开始。但事实并非如此。如果第一个文本视图框架有更多的文本,那么它会出现在第二个文本视图上。在一些DetailView中,最后一个按钮不适合scrollView的内容。你需要坚持一个问题,停止创建本质上相同的新问题。进行一些调试,打印出所有帧,并对计算结果进行双重/三重检查。首先要确定顶部框架的尺寸,然后逐个定位下部框架。您应该能够立即指出一些具体问题,例如:“顶部textview的框架没有根据其内容的大小进行调整”。张贴正在发生的事情的具体陈述,并提出更有针对性的问题,而不是含糊不清的“它不起作用”陈述。
// (first adjust each text view's frame per the linked answer)
...
// then adjust the frames of the content
CGRect topTextViewFrame = topTextView.frame;
CGRect middleTextViewFrame = middleTextView.frame;
middleTextViewFrame.origin.y = topTextViewFrame.origin.y + topTextViewFrame.size.height;
middleTextView.frame = middleTextViewFrame;
CGRect bottomTextViewFrame = bottomTextView.frame;
bottomTextViewFrame.origin.y = middleTextViewFrame.origin.y + middleTextViewFrame.size.height;
// then adjust your other controls based on these frames, for example:
CGRect myButtonFrame = myButton.frame;
myButtonFrame.origin.y = bottomTextViewFrame.origin.y + bottomTextViewFrame.size.height;
// finally adjust the contentSize of the scrollview assuming the button is the bottom element
CGSize csize = myScrollView.contentSize;
csize.height = myButtonFrame.origin.y + myButtonFrame.size.height;
myScrollView.contentSize = csize;