在UIScrollView中添加和定位UIButtons阵列

时间:2016-01-15 12:05:10

标签: ios swift uitableview uiscrollview uibutton

在开始时,这是screenshot of my ViewController in Action。 我的ViewController包含嵌入式YouTube视频,其下方为UIScrollView,其下方为UITableView,现在已随机填充。我希望获得特定歌手的所有专辑,并且每个专辑都有一个单独的UIButton,如屏幕截图所示 - >

  

svi,lek za spavanje,balkan

问题是,我将收到YouTube API的所有专辑,所以我不知道歌手有多少专辑。我必须在Swift中以编程方式添加UIButtons。

用我的语言," svi"意味着"所有",所以当我点击" svi"我应该在UITableView中获取下面列出的所有相册。同样,所有专辑和" svi"("所有")应该在UIScrollView中,因此当用户点击时,例如" Balkan" ,UITableView应填充来自"巴尔干"的所有曲目。相册。

根据顶部提供的屏幕截图,有人可以建议我如何在UIButtons中制作和定位所有as an Array of UIButtonsUIScrollView)吗?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

  1. 在故事板中添加Scrollview /以编程方式添加
  2. 拥有包含相册列表的数组
  3. 以编程方式创建 Try Dim cnn As New OleDbConnection(conString) query = "Insert into tblreportlog(EmpID,empname,department,empdate,timeinaM,timeoutam,lateam,timeinpm,timeoutpm,latepm,thw) values ('" & dgvReport.Item(0, dgvReport.CurrentRow.Index).Value & "', '" & dgvReport.Item(1, dgvReport.CurrentRow.Index).Value & "', '" & dgvReport.Item(2, dgvReport.CurrentRow.Index).Value & "','" & dgvReport.Item(3, dgvReport.CurrentRow.Index).Value & "','" & dgvReport.Item(4, dgvReport.CurrentRow.Index).Value & "','" & dgvReport.Item(5, dgvReport.CurrentRow.Index).Value & "','" & dgvReport.Item(6, dgvReport.CurrentRow.Index).Value & "','" & dgvReport.Item(7, dgvReport.CurrentRow.Index).Value & "', '" & dgvReport.Item(8, dgvReport.CurrentRow.Index).Value & "','" & dgvReport.Item(9, dgvReport.CurrentRow.Index).Value & "','" & dgvReport.Item(10, dgvReport.CurrentRow.Index).Value & "')" cmd = New OleDbCommand(query, cnn) cnn.Open() cmd.ExecuteNonQuery() cnn.Close() Catch ex As Exception MsgBox("ERROR: " & ErrorToString(), MsgBoxStyle.Critical) End Try 并将其添加到滚动视图
  4. 设置末尾滚动视图的大小。
  5. 代码段如下,

    UIButton

    使用以下方法检查字符串的大小

       UIScrollView * scView;
       UIButton * btn;
       NSMutableArray * array;
       float btnWidth = 44;
       for(int i=0;i<array.count;i++) {
        btn = [UIButton buttonWithType:UIButtonTypeCustom];
        btn.frame = CGRectMake(i*btnWidth, 0, btnWidth, 44);
        [btn setTitle:[array objectAtIndex:i]forState:UIControlStateNormal];
        [btn addTarget:self action:@selector(btnTapped) forControlEvents:UIControlEventTouchUpInside];
        [scView addSubview:btn];
    }
    [scView setContentSize:CGSizeMake(btnWidth*array.count, 50)];
    
    - (void)btnTapped {
      // button click call back method
    }
    

    将您的相册名称传递给此方法,并从该获取宽度返回- (CGSize)getHeightForText:(NSString *)text havingWidth:(CGFloat)widthValue andFont:(UIFont *)font { CGSize size = CGSizeZero; if (text) { CGRect frame = [text boundingRectWithSize:CGSizeMake(widthValue, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{ NSFontAttributeName:font } context:nil]; size = CGSizeMake(frame.size.width, frame.size.height); } return size; } ,并将该宽度值设置为上面的按钮宽度for循环。