我有一个str = value|value|value|value|...
格式的字符串,它存储在MutableDictionary中我通过将字符串转换为字符串来创建与上面字符串中的数字os字符串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
我添加的按钮将采用我添加的字符串并更改它并再次将更改的字符串设置为选择器I中相同键的新值(我在当前处理的keyValue上保留了一个轨道)添加了touchupInside
controlEvent
我的问题是更改后的字符串没有反映在UIControlStateApplication
的title属性中,因为我已经添加了所有按钮,尽管它们有一个指向该字典中键值的指针
答案 0 :(得分:0)
使用UIControlStateNormal而不是UIControlStateApplication,除非您专门将按钮的状态更改为除UIControlStateNormal(默认值)之外的任何其他内容。
答案 1 :(得分:0)
尝试使用以下代码替换UIButton创建代码:
UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
rect1.size.height=TIMEROWHWIGHT*[[arr objectAtIndex:1] intValue];
[btn setTitle:[NSString stringWithFormat:@"%@",[myMutableDictionary objectForKey:date]] forState:UIControlStateNormal];
希望它会对你有所帮助:)。