UIButton上的AsyncImageView

时间:2011-01-05 15:16:55

标签: iphone iphone-sdk-3.0 ios4 asynchronous

快速而简单的问题。我有一个带UIButtons的滚动视图,当你按下它们时会翻转。按钮必须显示productImage。因为这些图像来自Web服务,所以我必须使用AsyncImageView加载它们。唯一的问题是,当我将AsyncImageView添加为按钮的子视图时,按钮无法再按下。

如何通过AsyncImageView进行操作?在按钮后面添加AsyncImageView当然不是一种选择。

for (int i = 1; i < [searchResults2 count]; i++) {
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(((10*i) + ((i - 1)*90)), 40, 90, 90)];        
    [button setBackgroundColor:[UIColor whiteColor]];
    [button setAlpha:0.9];

    CGRect frame;
    frame.size.width=90; 
    frame.size.height=90;
    frame.origin.x=0; 
    frame.origin.y=0;
    AsyncImageView* asyncImage = [[[AsyncImageView alloc] initWithFrame:frame] autorelease];
    asyncImage.tag = 999;
    [asyncImage loadImageFromURL:[NSURL URLWithString:[[searchResults2 objectAtIndex:(i-1)] 
                                                       searchObjectImageUrl]]];
    [button addSubview:asyncImage.view];
    button.tag = i;
    [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];      
    [scrollView addSubview:button];
}   

提前致谢。

编辑:解决方法是不使用AsyncImageview并为图像编写简单的下载程序。

2 个答案:

答案 0 :(得分:2)

试试这个:

asyncImage.userInteractionEnabled = NO;

这会导致任何“命中”asyncImage的触摸事件传递到z-order中的userInteractionEnabled设置为YES的下一个对象。

-S

答案 1 :(得分:0)

您可以使用以下内容

asyncImage.userInteractionEnabled = NO;
asyncImage.exclusiveTouch = NO;