0
        //here   take a array with letters 
        _englishArray = [[NSMutableArray alloc]initWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z", nil];
        int i=0;
        float x=5,y=13;
        //add array elements as button title
        for (i=0; i< [_englishArray count]; i++) {
            button.tag=i+1;
            button = [UIButton buttonWithType:UIButtonTypeCustom];
            [button addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];
            [button setTitle:[_englishArray objectAtIndex:i] forState:UIControlStateNormal];
            button.frame= CGRectMake(x, y, 29, 30);
            button.titleLabel.textColor =[UIColor whiteColor];
            x= x+31;
            if (x==320 || x>310) {
                x=5;
                y=y+40;
            }
            [_keyboardImageView addSubview:button];
        }


        //   and i add the each button to _keyboardImageView and set title as _english arry elements ...and the get buttons curren title for this code...
    //here get the button title useing for loop

   for (int j=0;j<=[_englishArray count]; j++) {
   //  here get button from image view by useing tag
            butt = (UIButton *)[_keyboardImageView viewWithTag:j+1];
            NSLog(@"%@",butt.titleLabel.text);
        }

それはnullを印刷し、ボタンのタイトルを与えません........ 注:私button.currentitleはそれがどのように可能であるかも使用しています..なぜnullが表示されるのですか?

4

3 に答える 3

1

でタイトルを設定したのでsetTitle:forState:、 を使用titleForState:してタイトルを取得します。

NSLog(@"title is %@", [butt titleForState:UIControlStateNormal]);

もちろん、これはそうでbuttはないことを前提としていnilます。ボタンを割り当てた後、ボタンのタグを割り当てる必要があります。

button = [UIButton buttonWithType:UIButtonTypeCustom];
button.tag=i+1;
于 2013-09-03T06:00:29.220 に答える
0

ボタンをforループのように定義してください

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

そしてタグを指定します。

   button.tag=i+1;

.h ファイルの代わりに for ループでボタンを定義する必要があります。

そして、タイトルテキストを取得する

      for (int j=0;j<=[_englishArray count]; j++) {
  UIButton  *butt = (UIButton *)[_keyboardImageView viewWithTag:j+1];
    NSLog(@"%@",butt.titleLabel.text);
}

それがあなたを助けることを願っています。

于 2013-09-03T06:02:27.257 に答える
0
_englishArray = [[NSMutableArray alloc]initWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z", nil];
int i=0;
float x=5,y=13;
//add array elements as button title
for (i=0; i< [_englishArray count]; i++) {
    button.tag=i+1;
    button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];

    button.frame= CGRectMake(x, y, 29, 30);
    [button setBackgroundColor:[UIColor grayColor]];
    [button setTitle:[_englishArray objectAtIndex:i] forState:UIControlStateNormal];
    //button.titleLabel.textColor =[UIColor whiteColor];
    [_keyboardImageView addSubview:button];
    x= x+31;
    if (x==320 || x>310) {
        x=5;
        y=y+40;
    }

}

//here get the button title useing for loop
//   and i add the each button to _keyboardImageView and set title as _english arry elements ...and the get buttons curren title for this code....
for (int j=0;j<=[_englishArray count]; j++) {
    butt = (UIButton *)[_keyboardImageView viewWithTag:j+1];
    NSLog(@"Required Result is %@",butt.titleLabel.text);


}

試してみてください、うまくいきます...

于 2013-09-03T06:11:27.683 に答える