0

フォトギャラリーからすべての画像を配列で取得し、これらすべての画像を UIButtons に表示し、それらをスクロールビューに入れてグリッドビューを表示しました。ユーザーがボタンをクリックすると、その画像を選択したように見えるはずです。目盛りの画像を取得して UIImageView に追加し、クリック時にボタンにその画像ビューを追加しました。しかし、ユーザーがもう一度同じボタンをクリックすると、ユーザーがすでに複数の画像を選択しているときに、その UIImageview をボタンから削除する方法がわかりました。これが私のコードです

-(void)loadImagesOnScrollView
{
    scrollView.contentSize=CGSizeMake(0, 55*[assets count]);

    int x=0,y=0;
    for (int i=0; i<[assets count]; i++) {
        ALAsset *asset = [assets objectAtIndex:i];

        UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
        btn.frame=CGRectMake(x, y, 100, 100);
        btn.tag=i;
        [btn setImage:[UIImage imageWithCGImage:[asset thumbnail]] forState:UIControlStateNormal];
        [btn addTarget:self action:@selector(btnClkd:) forControlEvents:UIControlEventTouchUpInside];

        if(i==0)
        {

        }
        else if(i%2 ==0)
        {
            x=0;
            y=y+110;
        }
        else
        {
            x=x+110;
        }

        [scrollView addSubview:btn];

    }
}

-(void)btnClkd:(UIButton*)sender
{
    if (sender.selected) {
        sender.selected=FALSE;
     }
    else
    {
        sender.selected=TRUE;
    }



    if(sender.selected)
    {

    [sender addSubview:imgView];

    }
    else
    {


    }

}

これに沿って、もう 1 つ質問があります。スクロール ビューのコンテンツ サイズを設定して、任意の数の画像で調整できるようにする方法です。

4

3 に答える 3

2

選択したボタンに画像を追加するときは、タグ = 定数 (たとえば 9999) + sender.tag を設定します。もう一度ボタンをクリックすると、タグ 9999+sender.tag を持つサブビューが存在するかどうかを確認します。はいの場合、そのサブビューをスーパービューから削除します

于 2012-09-18T15:53:41.300 に答える
1

.h ファイルに BOOL 変数を作成します。例:

BOOL isButtonClicked; // in .h file

次に、.mファイルで

-(IBAction)onButtonClick:(UIButton *)checkBoxButton
    {
        if (!isButtonClicked) {
            [checkBoxButton setImage:[UIImage imageNamed:@"tickMark.png"] forState:UIControlStateNormal];
            isButtonClicked=YES;
        }
        else
        {
            [checkBoxButton setImage:[UIImage imageNamed:@"NormalImage.png"] forState:UIControlStateNormal];
            isButtonClicked=NO;
        }
    }
于 2012-09-18T09:23:20.877 に答える
0

UIImageView が UIButton に追加されているかどうかを確認するには、次を使用します。

ボタンにUIImageがあるかどうかを確認する

 if ( [button.currentImage isEqual:[NSNull null]]) {
        NSLog(@"image exist");
    }

また

ボタンに背景画像があるかどうかを確認する

 if ( [button.currentBackgroundImage isEqual:[NSNull null]]) {
        NSLog(@"background image exist");
    }
于 2012-09-18T06:48:55.730 に答える