将一组按钮添加到特定的子视图

Posted

技术标签:

【中文标题】将一组按钮添加到特定的子视图【英文标题】:Adding an array of buttons to a particular subview 【发布时间】:2013-02-08 17:50:32 【问题描述】:

我有一个隐藏的子视图,直到用户单击按钮(子视图是 UIScrollview)。我想以编程方式在该视图中添加一个按钮网格。我不确定如何指定将按钮添加到哪个视图。我正在尝试关注http://www.raywenderlich.com/130/how-to-write-a-custom-image-picker-like-uiimagepicker

滚动视图被称为图形视图

这就是我所拥有的

 for(int i=0;i<64;i++)

UIImage *buttonImage=[UIImage imageNamed:@"image.png"];

    [arrayOfThumbnails addObject:buttonImage];  




for(int i = 0; i < arrayOfThumbnails.count; ++i) 

    UIImage *thumb = [arrayOfThumbnails objectAtIndex:i];
    UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(column*100+24, row*80+10, 64, 64);
    [button setImage:thumb forState:UIControlStateNormal];
    [button addTarget:graphicView
               action:@selector(buttonClicked:)
     forControlEvents:UIControlEventTouchUpInside];
    button.tag = i;
    [graphicView addSubview:button];

    if (column == 2) 
        column = 0;
        row++;
     else 
        column++;
    



这是本教程中我唯一没有使用的部分......

[查看 setContentSize:CGSizeMake(320, (row+1) * 80 + 10)];自我观 = 视图;


【问题讨论】:

老实说,我不明白你有什么问题。你的代码不工作吗? 我不明白你的问题。您在 for 循环中将按钮添加到 graphicsView,那么有什么问题?这不工作吗。另外,当您在每个索引处放置相同的图像时,为什么要为缩略图创建一个数组? 我正在使用相同的图像来进行测试。不,什么都没有出现。我确实在界面生成器中创建了滚动视图。 我会验证我的滚动视图是否存在并通过更改其背景颜色来正确调整大小,然后我会打印出每个按钮框架的值。 【参考方案1】:

通过检查 [UIImage imageNamed:@"image.png"] 的返回值确保 UIImage 有效

检查你的 NSMutableArray 是否已经初始化

您的 for 循环看起来不寻常,请尝试更改为快速枚举

for (UIImage *thumb in arrayOfThumbnails) 
    // UIImage *thumb = [arrayOfThumbnails objectAtIndex:i]; <-- Not needed
    ...
 

graphicView 是否被添加为某处的子视图?设置 graphicsView.backgroundColor = [UIColor redColor] 这样你至少可以看到它正在被添加。

【讨论】:

我的图像数组中似乎没有项目? 好的,数组不再为空,我创建了按钮并将其打印在日志中,它显示 >。为什么这不可见?我尝试将 opaque 设置为 yes 和同样的事情。 通过快速枚举检查您是否没有从数组中再次加载图像。我更新了我的答案。 将其分解为更小的步骤以帮助找到问题。尝试直接将图像添加到您的视图控制器视图以确保图像正确加载。接下来,将图像添加到按钮,并将按钮添加到视图控制器视图。

以上是关于将一组按钮添加到特定的子视图的主要内容,如果未能解决你的问题,请参考以下文章

添加为 UIView 的子视图后,按钮不可点击

如何识别 UIAutomation 中添加到 UIButton 的子视图(imageviews)?

将大于 cellHeight 的子视图添加到 UITableViewCell?

如何管理添加到 UIView 中的子视图?

如何为堆栈视图中的视图添加约束

IOS:如何使从 nib 文件加载的子视图可以使用它的按钮(IBAction)