【发布时间】:2017-02-02 02:05:04
【问题描述】:
我是这个 iOS 应用程序世界的新手,我正在开发一个需要显示项目详细信息的应用程序。这个细节可以接收来自用户的 cmets,我需要的是每次细节得到一个新的评论时我的屏幕高度就会增加,这就是我所做的,这就是屏幕:
Scroll 的约束是:Trailing、Leading、top 和 bottom 到其父视图。 对于视图内容:与其父视图的尾随、前导、顶部和底部,在 x 和 y 中对齐中心,并等于父视图的高度和宽度。
所有的cmets都来自一个服务,我想要增加内容。我展示了所有的 cmets,但 UIScrollView 不起作用。我认为是因为限制
这是我如何加载和打印 cmets 并更改我的滚动视图的内容:
int y = bottomLine.frame.origin.y + 8;
int numComments = [[content objectForKey:@"comments"] intValue];
if (numComments > 0) {
for (int j=0; j < [comments count]; j++) {
commentData = [comments objectAtIndex:j];
//Create all the elements
viewComments = [[UIView alloc] initWithFrame:CGRectMake(8, y, self.view.bounds.size.width - 16, 109)];
viewComments.backgroundColor = [UIColor grayColor];
UIImageView *viewImgComment = [[UIImageView alloc] initWithFrame:CGRectMake(8, 8, 50, 50)];
NSURL *linckImage = [NSURL URLWithString:[commentData objectForKey:@"image"]];
[viewImgComment sd_setImageWithURL:linckImage placeholderImage:[UIImage imageNamed:@"place_holder_user"]];
viewImgComment.layer.cornerRadius = 25;
viewImgComment.clipsToBounds = YES;
UILabel *lblTituloComment = [[UILabel alloc] initWithFrame:CGRectMake(50 + 16, 8, (viewComments.bounds.size.width - 74) , 17)];
[lblTituloComment setText:[commentData objectForKey:@"name"]];
[lblTituloComment setFont:[UIFont systemFontOfSize:14.0f]];
UIView *viewRating = [[UIView alloc] initWithFrame:CGRectMake(50 + 16, 17 + 16, 121, 23)];
viewRating.backgroundColor =[UIColor blackColor];
viewRating.layer.cornerRadius = 11;
UILabel *lblDescripcionComment = [[UILabel alloc] initWithFrame:CGRectMake(8, 50 + 8, (viewComments.bounds.size.width - 16), 43)];
[lblDescripcionComment setText:[commentData objectForKey:@"comment"]];
[lblDescripcionComment setFont:[UIFont systemFontOfSize:14.0f]];
[lblDescripcionComment setNumberOfLines:0];
y = y + 117;
[viewComments addSubview:viewImgComment];
[viewComments addSubview:lblTituloComment];
[viewComments addSubview:viewRating];
[viewComments addSubview:lblDescripcionComment];
[masterScroll addSubview:viewComments];
}
}
//Increase the content size
masterScroll.contentSize = CGSizeMake(self.view.bounds.size.width, y);
我希望有人能帮助我,我已经尝试了 3 天,研究和询问。有任何问题或对某事的任何解释,请告诉我。
【问题讨论】:
-
您能告诉我,对于 cmets,您使用的是 table view 还是 uiview?如果表视图没有问题。如果您使用的是 uiview,那么您需要进行一些更改。不是什么大问题。告诉我吧。
-
当然,我正在使用 uiview。
-
1.在添加评论之前记录当前高度。添加评论后,计算该视图的高度。查找先前高度和当前高度之间的差异。 2.转到故事板->选择滚动视图的高度约束->为该约束创建一个出口。 -> 现在去代码 -> heghtConstraint.constant = differenceHeight+currentHeightOfScrollView.
标签: ios objective-c uiscrollview constraints