从上到下我有UIView,UIScrollView,UIImage,UILabel,UITextView和UIButton。
最顶层的UIScrollView背后的原因是整个垂直内容都会滚动。
我真正需要替代的是UITextView(第5版),因为UITextView是UIScrollView的子类。而这个替代品必须能容纳非常高的格式化文本列。
我不想要的是页面中间的可滚动对象;我希望整个页面可以滚动。
还有一件事......请注意,这个高大的文字栏下方有一个按钮。
John Love
答案 0 :(得分:1)
如果我理解你的问题,你不希望嵌套滚动。 所以设置yourTextView.scrollEnabled = NO; //以编程方式在笔尖中进行操作
另外,为了显示所有文本,将yourTextView框架高度设置为其内容高度:
yourTextView.frame = CGRectMake(yourTextView.frame.origin.x,
yourTextView.frame.origin.y,
yourTextView.frame.size.width,
yourTextView.contentSize.height + (yourTextView.contentSize.width > yourTextView.frame.size.width ? (yourTextView.contentSize.width * yourTextView.contentSize.height / (yourTextView.contentSize.width - yourTextView.frame.size.width)) - yourTextView.contentSize.height :0)));
/*
If textView is dynamically filled, you have to check if yourTextView.contentSize.width is bigger than yourTextView.frame.size.width then add proportionally what is remaining to the height.
*/
如果需要,最后更改按钮位置:
yourbutton.frame = CGRectMake(yourbutton.frame.origin.x,
yourTextView.frame.origin.y + yourTextView.frame.size.height + 20, //If you want your button to be 20 point after your textView
yourbutton.frame.size.width,
yourbutton.frame.size.height);
希望能帮到你...
答案 1 :(得分:1)
谢谢!阿沙克和彭塔格。我想我最终不得不放弃并抛弃IB可以用于所有GUI的想法......
整个UIView包含一个UILabel,一个UIImage,一个UITextView和 最底层的UIButton。
这里的目标是使整个内容可滚动。
感谢stackoverflow.com上的你们:
- 使用IB,取消选中UITextView的“Scrolling Enabled” 因为它是UIScrollView的具体类型
- 使用IB,将UIScrollView拖到UIView并匹配大小和 确保UIScrollView包含所有子视图
- 制作UITextView height = its contentSize.height
- 将UIButton移动到此UITextView
下方 醇>
然后,感谢iphonedevsdk.com:
- 将最顶层UIScrollview的contentSize.height调整为 包括重新定位的UIButton的高度
醇>
问题解决了!!!
答案 2 :(得分:0)
你的问题不是很具体,但我想你是在问如何制作一个不滚动的文本视图,并扩展以适应文本。您可以使用UILabel执行此操作,但这是一个多步骤的过程。如果禁用滚动并将contentSize设置为与帧尺寸匹配,则同样适用于UITextView。
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100,100,100,100)];
label.font = [UIFont systemFontOfSize:24];
NSString *yourTextString = @"your text";
CGSize maximumLabelSize = CGSizeMake(100, 500);
CGSize expectedLabelSize = [yourTextString sizeWithFont:label.font
constrainedToSize:maximumLabelSize
lineBreakMode:yourLabel.lineBreakMode];
CGRect labelFrame = label.frame;
labelFrame.size.width = expectedLabelSize.width;
labelFrame.size.height = expectedLabelSize.height;
label.frame = labelFrame;
然后从那里开始,使用标签的框架来设置按钮的位置及其下方的所有元素。