0

我有一个格式为 str= 的字符串value|value|value|value|...,它存储在 MutableDictionary 中我创建的按钮与value上面字符串中的数字 os 字符串一样多,方法是使用将字符串转换为数组

[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

使用 UIControlStateNormal 而不是 UIControlStateApplication 除非您专门将按钮的状态更改为 UIControlStateNormal(默认)以外的任何其他状态。

于 2013-05-03T16:10:15.780 回答
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 回答