0

str= 形式の文字列がありvalue|value|value|value|...、MutableDictionary に格納されvalueます

[str componentsSeparatedByString:@"|"]

その文字列全体をボタンのタイトルに設定します。以下は、上で説明したコードです

[myMutableDictionary setObject:str forKey:date];
            NSArray *events=[str componentsSeparatedByString:@"|"];
            CGRect rect1=CGRectMake(0, 0,scheduleScroll.bounds.size.width, TIMEROWHWIGHT);
            for (NSString *strInfo in  events) {
                if([strInfo boolValue])
                {
                    NSArray *arr=[strInfo componentsSeparatedByString:@":"];

                    UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
                    rect1.size.height=TIMEROWHWIGHT*[[arr objectAtIndex:1] intValue];
                    [btn setTitle:[myMutableDictionary objectForKey:date] forState:UIControlStateApplication];
// add the Button as a sub view and define a method and target

追加したボタンは、追加した文字列を取得して変更し、追加したセレクターで、変更された文字列を同じキーの新しい値として再度設定します (現在作業中の keyValue を追跡します)。touchupInside controlEvent

私の問題は、変更された文字列が、追加したすべてのボタンのタイトル プロパティに反映されないことですUIControlStateApplication。その辞書のキーの値へのポインターがあります。

4

2 に答える 2

0

UIButton 作成コードを次のコードに置き換えてみてください。

 UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
 rect1.size.height=TIMEROWHWIGHT*[[arr objectAtIndex:1] intValue];
 [btn setTitle:[NSString stringWithFormat:@"%@",[myMutableDictionary objectForKey:date]] forState:UIControlStateNormal];

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

于 2013-05-03T16:14:20.520 に答える
0

ボタンの状態を特に UIControlStateNormal (デフォルト) 以外に変更する場合を除き、UIControlStateApplication の代わりに UIControlStateNormal を使用します。

于 2013-05-03T16:10:15.780 に答える