我正在尝试在Scrollview中插入TextView。 scrollview工作但TextView的内容未显示完整,因为出现了他们的滚动。我会在没有滚动的情况下显示TextView的完整内容。
file.h
@interface DetailViewController : UIViewController{
IBOutlet UITextView *detailTextView;
IBOutlet UIScrollView *scroller;
}
@property(retain, nonatomic) IBOutlet UIScrollView *scroller;
-(void)setTextViewForRecipes: (Recipe *)theRecipe;
@end
file.m
@implementation DetailViewController
@synthesize scroller;
-(void) setTextViewForRecipe:(Recipe *)theRecipe
{
[detailTextView setText:theRecipe.detail];
}
- (void)viewDidLoad {
CGRect frame = detailTextView.frame;
frame.size.height = detailTextView.contentSize.height;
detailTextView.frame = frame;
[scroller setContentSize: CGSizeMake(280, detailTextView.frame.origin.y + detailTextView.frame.size.height + 10)];
}
答案 0 :(得分:2)
通过将viewDidLoad
的帧高设置为detailTextView
高度,您在contentSize
中得到了正确的想法。但是在设置视图文本后需要这样做,当然你需要再次调整滚动条的contentSize
。
-(void) setTextViewForRecipe:(Recipe *)theRecipe
{
detailTextView.text = theRecipe.detail;
CGRect frame = detailTextView.frame;
frame.size.height = detailTextView.contentSize.height;
detailTextView.frame = frame;
scroller.contentSize = CGSizeMake(280, 10 + CGRectGetMaxY(frame));
}
答案 1 :(得分:0)
UITextView是UIScrollView的子类,因此不应将其添加到滚动视图中。
答案 2 :(得分:0)
作为bandejapaisa pointed out,通常没有必要将UITextView
包裹在UIScrollView
内,因为textView可以单独滚动。
但是,如果你真的觉得这是必要的,你可以找到文本的大小,如果用某种字体呈现的话:
CGSize textSize = [text sizeWithFont:[UIFont systemFontOfSize:fontSizeOfYourTextView]
constrainedToSize:CGSizeMake(widthOfYourTextView, MAXFLOAT)
lineBreakMode:UILineBreakModeOfYourTextView];
这将找出高度。适应你的需求,但要注意:这有点麻烦,你可能需要做一些试验和错误才能达到预期的结果。