0

ここで、scrollView を使用して拡張ビューを構築しようとしているので、私のクラスは次のとおりです。

ButtonsScroller.h

これは私のコンポーネント クラスです。このクラスは UIView を拡張し、uiscrollview を持っています。

これは、このクラスのメイン メソッドです。

-(void)buildUi {

buttonsCount=[buttonsArray count];

NSLog(@"Building Scroll With %d Buttons",buttonsCount);
NSLog(@", every row has %d Buttons",countOfButtonsInOneRow);
NSLog(@", every button Width is :  %d px",buttonWidth);
NSLog(@", every button height is :  %d px",buttonHeight);
NSLog(@", space Between Buttons In One Row   is :  %d px",marginsBetweenButtons);
NSLog(@", space Between 2 rows  is :  %d px",marginsBetweenRows);
NSLog(@"and number Of Rows To Be Shown :  %d row",rowsToShow);
int horizontalStart=horizontalStartFrom-buttonWidth;


int HORIZONTAL_CORDENATES=horizontalStart;

for(int bc=0;bc<buttonsCount;bc++){
    NSLog(@"buttons Counter : %d",bc);

    for(int g=0;g<countOfButtonsInOneRow;g++){
        if(bc==buttonsCount || bc>buttonsCount){
            break;
        }else {


            Expos *expo=[buttonsArray objectAtIndex:bc];

           //ExpoUIButton : My Custom UIView with buttons in it
            ExpoUIButton *btn=[[ExpoUIButton alloc]init];

            [btn.name setText:expo.userName];

            if(![expo.user_type isEqualToString:@"2"]){
                NSLog(@"[expo.user_type isEqualToString:1");
                [btn setType:0];
            }


            btn.frame=CGRectMake(HORIZONTAL_CORDENATES, VERTICAL_CORDENATES, buttonWidth, buttonHeight);                
            [scrollView addSubview:btn];
            bc=bc+1;
            HORIZONTAL_CORDENATES=HORIZONTAL_CORDENATES-(marginsBetweenButtons+buttonWidth);


        }
        NSLog(@"g : %d",g);
    }

    bc=bc-1;
    HORIZONTAL_CORDENATES=horizontalStart;
    VERTICAL_CORDENATES=VERTICAL_CORDENATES+(marginsBetweenRows+buttonHeight);
}

// ComputeRow Count 

int rowCount=buttonsCount;

// NSLog(@"rowCount%4  : %d",(rowCount%4 ));
while((rowCount%countOfButtonsInOneRow) !=0){
    NSLog(@"rowCount : %d",rowCount);
    rowCount=rowCount+1;
}

float rowCounts=(rowCount/countOfButtonsInOneRow);
NSLog(@"rowCounts : %f",rowCounts);


float viewHeight=rowsToShow*(buttonHeight)+(rowsToShow*marginsBetweenRows)+(buttonHeight/2);
NSLog(@"viewHeight : %f",viewHeight);

if(self.showLoadMore){
    if(loadMore==nil){
        loadMore=[UIButton buttonWithType:UIButtonTypeCustom];
        [loadMore setImage:[UIImage imageNamed:@"more"] forState:UIControlStateNormal];
        [loadMore setImage:[UIImage imageNamed:@"more-f"] forState:UIControlStateHighlighted];
        [loadMore setFrame:CGRectMake(130, VERTICAL_CORDENATES+3, 68, 15)];

        [scrollView addSubview:loadMore];

    }else {
        [loadMore setFrame:CGRectMake(130, VERTICAL_CORDENATES+3, 68, 15)];
    }
      [scrollView  setContentSize:CGSizeMake(SC_WIDTH, VERTICAL_CORDENATES+25)];
}else {
    [scrollView  setContentSize:CGSizeMake(SC_WIDTH, VERTICAL_CORDENATES)];
} 
} 

私のmainView Controllerで接続を開始し、接続が完了すると、このメソッドが呼び出されます

#pragma mark -
#pragma mark - YttpConnectionDelegate
-(void) YConnectionDoneWithArray:(NSMutableArray *)items {
    NSLog(@"items : %d",[items count]);
    if([items count]>0  ){
        exposArray =items;
        [productsList hideLoadingView];
        [productsList setButtonsArray:exposArray];
        [productsList buildUi  ];
        SEL selector = @selector(loadDataFromInternet);
        [productsList loadMoreBtnSelector:selector target:self];
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
    } else {
        [productsList hideLoadingMoreButton];
    }
}

ビューを開いてボタンの最初のセットをロードすると、ビューはまだ問題ありませんが、2番目のボタンのセットが追加されたときに問題が発生し、uiscrollviewが粗くなり、すべてのボタン(古いものと新しいもの)がクリックできなくなります

また、firstVC ビューに戻って、最初のボタン セットを読み込んだ後で scrollviewVC 画面に移動すると、すべてのボタンがクリックできないので、何が問題なのですか?!

編集 :

これはリフレッシュの問題だと思いますか?

4

0 に答える 0