根据图像名称添加到CollectionView单元格的链接

时间:2014-02-12 11:57:06

标签: ios objective-c collectionview

我有一个带有UIImageView的CollectionView,图像在listImages数组中定义。

我正在尝试这样做,以便当您点击指定的图片时,您将被重定向到一个网站,其中包含更多相关信息。

但是,我不知道如何使用if子句获取图像的名称,并通过它给它一个链接。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    listImages = [NSArray arrayWithObjects:@"7513-kirjatkuivumassa.jpg", @"kuppi.jpg", @"kuva1.jpg", @"juna-042.jpg", @"rautio-valamonruusut-helleaamuna-maalaus.jpg", @"pysähtynyt1.jpg", @"Screen-Shot-2013-02-20-at-21.07.38.jpg", @"sateenkaari.jpg", @"Screen-Shot-2013-02-21-at-17.04.22.jpg", @"moninaiset-e1391026376696.jpg", @"Tomperi+Metsä20111.jpg", @"3-shinot.jpg", @"Ulpukat.jpg", @"janne-e1391025808211.jpg", @"martikainen-240x240.jpg", @"takala-240x240.jpg", @"paanukallokaarme1.jpg", @"käsityök-240x240.jpg", @"kuvis-004.jpg", @"Se-on-hieno-2012-tammi-105x28x223.jpg", nil];
}

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
    if ([[cell.listImageView text] isEqualToString:@"7513-kirjatkuivumassa.jpg"]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://website.com"]];
    }
}

2 个答案:

答案 0 :(得分:0)

请试试这个。

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *image_name= [listImages objectAtIndex:indexPath.row];
    if ([image_name isEqualToString:@"7513-kirjatkuivumassa.jpg"]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://website.com"]];
    }
}

答案 1 :(得分:0)

我认为你的结构不是很好。你应该利用objective-C的力量,而不是自己尝试做事。我会按照以下步骤操作:

  1. 创建一个具有以下属性的对象:(1)UIImage,(2)带文本的NSString,(3)带URL的NSUrl。
  2. listImages应包含您的对象
  3. 现在很容易做你想做的事情

    - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
    {
             yourObject *yourObject = [listImages objectAtIndex:indexPath.row];
            [[UIApplication sharedApplication] openURL:yourObject.url]];
     }