将uitextview,uilabel和uiimageview组合在一个可滚动的对象ios中

时间:2013-05-11 07:54:02

标签: iphone ios uiscrollview uitextview uistoryboard

我需要一个包含(标题,图片和详细信息)的视图,详细信息是关于textview。

我需要的是,允许滚动到所有视图,而不仅仅是texview。 在我的应用程序中,如果我禁用滚动,则会剪切textview,因为高度不是动态的:

enter image description here

在我的代码中,我这样说:

  CGRect frame = self.detailTextView.frame;
  frame.size.height = self.detailTextView.contentSize.height;
  self.detailTextView.frame = frame;
  [self.detailTextView sizeToFit];
  self.detailTextView.text = [[fastResults objectAtIndex:0] objectForKey:@"content"];

fastResults是一个包含数据的字典。

我需要像bbc application这样的视图:

enter image description here

所以,我需要让textview高度是动态的,并让所有视图可以一起滚动。 注意:所有这些元素都在滚动视图中。

这是我的界面构建器:

enter image description here

感谢您的帮助;

2 个答案:

答案 0 :(得分:0)

首先,您需要在调整文本视图大小之前在文本视图上设置文本。所以你应该有类似的东西:

  self.detailTextView.text = [[fastResults objectAtIndex:0] objectForKey:@"content"];
  CGRect frame = self.detailTextView.frame;
  frame.size.height = self.detailTextView.contentSize.height;
  self.detailTextView.frame = frame;
//  [self.detailTextView sizeToFit]; you don't need this anymore

//after you resized the self.details.textView you have to change the scrollview content size 

yourScrollView.contentSize = CGSizeMake(yourScrollView.contentSize.width, 
                                       yourImageHeight + yourTitleHeight + self.detailsTextView.frame.size.height);

答案 1 :(得分:0)

您可以首先获得要放在textview(see this)中的NSString的高度,然后将textview的高度设置为字符串的计算高度。
也许,如果textview的高度大于scrollview contentSize的高度,你还必须调整scrollview的contentSize的高度作为textview框架的高度。然后禁用textview上的滚动。