我有一个UIScrollView
将根据显示的按钮数量进行扩展。它将始终向上舍入到最接近的320倍。
所以,如果UIScrollView
将收到3个按钮,它将是320px水平,如果它收到6然后640px,9是960。
我需要做的是将UIButtons
平均分配到此UIScrollView
。但我似乎无法弄清楚如何执行此操作。
我的UIButtons
水平测量80像素。
有人可以帮助我解决这个问题吗?
更新/澄清:设置UIScrollView的宽度没有问题。这已经完成了。我正在寻找有关如何在'UIScrollView'中分发'UIButtons'的信息..
答案 0 :(得分:0)
[theScrollView setContentSize:CGSizeMake(320/640/960, theScrollView.frame.size.height)];
答案 1 :(得分:0)
//considering a margin of 10 pts on either edges and a additional 10 pts on each side of button
添加如下按钮:
for(int i=0; i< buttonCount;i++){
CGRect buttonFrame = CGRectMake( 10 + i*(80+10+10) +10 , buttonY, 80, buttonHeight );
UIButton *button = [UIButton buttonWithType:<type>];
button.frame = buttonFrame;
}
//To set the scrollable area
[scrollView setContentSize:CGSizeMake( 10 + buttonCount*(80+10+10) +10, 0 )];
//left margin + buttonCount x (buttonWidth + leftButtonMargin+rightButtonMargin) + right margin
这可以根据按钮的数量为您提供几乎均匀分布的按钮。
答案 2 :(得分:0)
您可以像这样使用:使用MyScrollView.pagingEnabled = YES。
int PageNum=0;
if(TotalButtons%3 >0)
{
pageNum=TotalButtons/3;
pageNum++;
}
else{
PageNum=TotalButtons/3;
}
[MyScrollView setContentSize:CGSizeMake(320*pageNum, MyScrollView.frame.size.height)];
根据滚动视图中所需的宽度和间距添加按钮。
修改强>
int x=56;
int y=60;
for(int i=1;i<= 60;i++)
{
UIButton *button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame=CGRectMake(x, y, 200, 120);
button.tag=i;
// [button setTitle:[NSString stringWithFormat:@"Video-%d",i+1] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"220x200.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(ButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[VideoStoreScroll addSubview:button];
if(i%6==0)
{
count++;
x=(count-1)*VideoStoreScroll.frame.size.width+56;
y=50;
}
else
{
if(i%3==0)
{
x=(count-1)*VideoStoreScroll.frame.size.width+56;
y=y+190;
}
else
{
x=x+256;
}
}
}
VideoStoreScroll.contentSize=CGSizeMake(x-56, 480);
VideoStoreScroll.contentOffset=CGPointMake(0, 0);
这里我每页滚动使用六个水平按钮。你可以在这之后工作三个。
答案 3 :(得分:0)
首先取一个数组中的所有按钮..小时说buttonsArray
int spacing = 10; // Adjust according to you requirement
int buttonWidth = 100; // Adjust according to you requirement
int buttonHeight = 100; // Adjust according to you requirement
int count = 0;
for (UIButton *thisButton in buttonsArray) {
[thisButton setFrame:CGRectMake(spacing*(count+1)+count*buttonWidth, 20, buttonWidth, buttonHeight)];
count++;
}
[theScrollView setContentSize:CGSizeMake([[buttonsArray lastObject]frame].origin.x+[[buttonsArray lastObject]frame].size.width+spacing, 0)];
希望这会对你有所帮助。 我测试过它......工作正常......