我在scrollview中有两个UIViews,其中两个视图都有子视图,其下有Autolayout OFF
- MainView
- ScrollView
- UIView
-UIButtons
-UIButtons
- UIView
- Navigation Bar
- UIImageView
- UIImageView
UIView
下的第一个ScrollView
有UIButtons
,这将是动态的,具体取决于我想要设置第二个视图的高度和位置。
如果有三个按钮,则下一个UIView
应该向下移动到第一个UIView
的高度。
在尝试实现此目的时,我无法在运行时设置UIView
的高度?
编辑:这是我正在做的事情我正在改变scrollview的内容大小:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// CGRect frame = self.myGamesSection.frame;
// frame.size.height = 100.0f;
// self.myGamesSection.frame = frame;
}
-(void) viewDidAppear:(BOOL)animated {
CGSize rSize = CGSizeMake(320.0f,1200.0f);
self.scrollView.contentSize = rSize;
}
-(void) viewWillAppear:(BOOL)animated {
CGSize rSizeMyGames = CGSizeMake(320.0f,100.0f);
self.myGamesSection.frame = CGRectMake(0,47,320, 100);
}
答案 0 :(得分:0)
在UIScrollView
上添加UIView
,然后添加按钮。
不要根据您的按钮大小更改contentSize
的{{1}}。
答案 1 :(得分:0)
上次我遇到类似的问题,当滚动视图的内容大小在运行时变化时,我只是切换到UITableView而不是UIScrollView,在那里你总是可以在委托的方法heightForRowAtIndexPath中指定单元格高度,并且每次都将reloadData发送到tableView它应该改变。也许这不是最好的解决方案,但它确实有效。
答案 2 :(得分:0)
您可以使用此类逻辑...
//Keep a variable which hold your yOffsetPositon and loop to add buttons. After that set the height of view.
int yPos = 0;
UIView *firstView = [[UIView alloc] initWithFrame:frame];
for (int =i =0; i<10; i++){
UIButton *b = [[UIButton alloc] initWithFrame:CGRectMake(0,yPos,30,30)];
yPos+=30;
//if you want spacing
//yPos+=10;
}
//reset height of firstView
fistView.frame = CGRectMake(frame.origin.x,frame.origin.y,yPos,frame.size.width);
//Set height of second view
UIView *secondView = [[UIView alloc] initWithFrame:CGRectMake(0,firstView.frame.size.height+10,HEIGHT,Width)];