在不同Y位置的UIView中添加多个UIButton

时间:2017-06-10 15:25:34

标签: objective-c uiview xamarin.ios uibutton

我知道如何以编程方式将UIButton添加到UIView。但是在上一个YPosition中添加了一定数量的UIButton之后,我仍然坚持在新的YPosition中添加UIButton。

以下是我的案例:

  • 要添加的UIButtons数量来自NSArray - 我们需要20个

  • UIView已添加到UIViewController中 - 让我们调用
    'buttonView'

  • 我正在使用循环创建UIButton(最多20个)。我已经设定了 buttonWidth为70,buttonHeight为45

  • 我正在获取屏幕尺寸并将其除以buttonWith,所以
    计算每行可容纳的物品数量 或每个Y位置。

  • 如果屏幕宽度为414,则414/70 = ~5.9,我将其视为

  • 前5个UIButton的YPosition为0,XPosition从0开始,并为后续按钮添加buttonWidth。

  • 接下来5个UIButtons(6-10)应该有新的YPosition为1-5 UIButton Yposition(0)+ buttonHeight(45)+ somespace(10)= 55和XPostion应该 从0开始。

  • 对于下一组UIButtons(11-15),YPosition应为
    Yposition(55)+ buttonHeight(45)+ somespace(10)= 100和XPosition 以0

  • 开头

如何实现这一目标?以下是我的代码

xPos = 8.0f; 
yPos = 0.0f;
totalSlots =timeslots.Count - //Total Number UIButtons to be creted
buttonWidth = 70;
buttonHeight = 45;
buttonViewWidth = this.view.frame.size.width // I'm getting the screen
buttonPerLine = scrollViewWidth / (buttonWidth + 10); // This calculates no.of.buttons per line/Y Position. I'm rounding off as said before
numberOfLine = totalSlots / buttonPerLine // This gives how many lines needed

for (int i = 0; i < totalSlots; i++)
                        {
timeSlotbtn[i] = new UIButton();
                        timeSlotbtn[i] = new UIButton();
                        timeSlotbtn[i].Frame = new CGRect(xPos, yPos, buttonWidth, buttonHeight);
                        timeSlotbtn[i].SetTitle(buttonText, UIControlState.Normal);
                        timeSlotbtn[i].Layer.BorderWidth = 2.0f;
                        timeSlotbtn[i].Layer.CornerRadius = 3;
                        timeSlotbtn[i].Tag = i;
                        timeSlotbtn[i].TitleLabel.Font = UIFont.FromName("HelveticaNeue-bold", 14.0f);


                xPos = timeSlotbtn[i].Frame.Location.X + buttonWidth + buttonSpace;
                timeslotScrollView.AddSubview(timeSlotbtn[i]);
}

请注意,上面的代码是用Xamarin.iOS编写的。如果你知道解决方案,那么你可以用Objective-c编写。无论如何,逻辑应该是相同的。

1 个答案:

答案 0 :(得分:0)

<?php

            $id=$_REQUEST['id'];
 $query="SELECT * FROM `category` ORDER BY name ASC" ; 
 $result=mysqli_query($con,$query);
  while($row=mysqli_fetch_array($result)){
                ?>
              <li><a href="list.php?id=<?php echo $row['id']; ?>" class ="<?=($id == $row['id']) ? 'active' : '' ?>"><?php echo $row['name']; ?></a></li>

 <?php } ?>