在一个scrollview上面有n个自定义的Button. 然后其他地方会触发button个数的修改。我的处理是将之前的btn全部remove掉,然后重新创建所有的btn. 把btn创建放在一个方法里面。 当触发之后重新调用这个方法。 通过全局变量ZHAppDelegate.cusCargos确定btn个数。 但是viewdidload里面调用这个方法的时候,能正常显示 。 但是触发后,重新调用就不显示子控件了。背景颜色有显示....另外如果是用UIButton 发现是可以正常显示的...
- (void) SetScrollVUI
{
[self.scrollV.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
#warning TODO 修改自选选中项后,退回主界面 列表UI不显示
int pageCount = 0;
if (ZHAppDelegate.cusCargos.count == ZHMAXOPTIONALCARGO) {
pageCount = 3;
}else{
pageCount = ((ZHAppDelegate.cusCargos.count + 1) / 3) + ((ZHAppDelegate.cusCargos.count + 1) % 3 ? 1 : 0);
}
self.scrollV.contentSize = CGSizeMake(ZHSCREENWIDTH * pageCount, 0);
self.pageControl.numberOfPages = pageCount;
for (int i = 0; i < ZHAppDelegate.cusCargos.count; i++) {
ZHOptionalCargoBtnView *cargoBtn = [ZHOptionalCargoBtnView optionalCargoBtn];
cargoBtn.frame = CGRectMake(i * ZHSCREENWIDTH/3, 0, ZHSCREENWIDTH/3, self.scrollV.height);
[cargoBtn addTarget:self action:@selector(didClickCargoBtn:) forControlEvents:UIControlEventTouchUpInside];
cargoBtn.cargo = ZHAppDelegate.cusCargos[i];
[self.scrollV addSubview:cargoBtn];
// UIButton *cargoBtn = [[UIButton alloc] init];;
// cargoBtn.frame = CGRectMake(i * ZHSCREENWIDTH/3, 0, ZHSCREENWIDTH/3, self.scrollV.height);
// [cargoBtn addTarget:self action:@selector(didClickCargoBtn:) forControlEvents:UIControlEventTouchUpInside];
// ZHCargoModel *model = ZHAppDelegate.cusCargos[i];
// [cargoBtn setTitle:model.AbbrName forState:UIControlStateNormal ];
// [self.scrollV addSubview:cargoBtn];
}
if (ZHAppDelegate.cusCargos.count < ZHMAXOPTIONALCARGO) { //不足9个,说明可以再增加.
UIButton *addBtn = [[UIButton alloc] init];
[addBtn setImage:[UIImage imageNamed:@"add_quotes~iphone"] forState:UIControlStateNormal];
[addBtn addTarget:self action:@selector(didAddOptionalCargo:) forControlEvents:UIControlEventTouchUpInside];
addBtn.frame = CGRectMake(ZHAppDelegate.cusCargos.count * ZHSCREENWIDTH / 3, 0, ZHSCREENWIDTH/3, self.scrollV.height);
[self.scrollV addSubview:addBtn];
}
[self.view setNeedsDisplay];
}不明白为什么显示不了呢.....
- (void) SetScrollVUI
{
[self.scrollV.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
#warning TODO 修改自选选中项后,退回主界面 列表UI不显示
int pageCount = 0;
if (ZHAppDelegate.cusCargos.count == ZHMAXOPTIONALCARGO) {
pageCount = 3;
}else{
pageCount = ((ZHAppDelegate.cusCargos.count + 1) / 3) + ((ZHAppDelegate.cusCargos.count + 1) % 3 ? 1 : 0);
}
self.scrollV.contentSize = CGSizeMake(ZHSCREENWIDTH * pageCount, 0);
self.pageControl.numberOfPages = pageCount;
for (int i = 0; i < ZHAppDelegate.cusCargos.count; i++) {
ZHOptionalCargoBtnView *cargoBtn = [ZHOptionalCargoBtnView optionalCargoBtn];
cargoBtn.frame = CGRectMake(i * ZHSCREENWIDTH/3, 0, ZHSCREENWIDTH/3, self.scrollV.height);
[cargoBtn addTarget:self action:@selector(didClickCargoBtn:) forControlEvents:UIControlEventTouchUpInside];
cargoBtn.cargo = ZHAppDelegate.cusCargos[i];
[self.scrollV addSubview:cargoBtn];
// UIButton *cargoBtn = [[UIButton alloc] init];;
// cargoBtn.frame = CGRectMake(i * ZHSCREENWIDTH/3, 0, ZHSCREENWIDTH/3, self.scrollV.height);
// [cargoBtn addTarget:self action:@selector(didClickCargoBtn:) forControlEvents:UIControlEventTouchUpInside];
// ZHCargoModel *model = ZHAppDelegate.cusCargos[i];
// [cargoBtn setTitle:model.AbbrName forState:UIControlStateNormal ];
// [self.scrollV addSubview:cargoBtn];
}
if (ZHAppDelegate.cusCargos.count < ZHMAXOPTIONALCARGO) { //不足9个,说明可以再增加.
UIButton *addBtn = [[UIButton alloc] init];
[addBtn setImage:[UIImage imageNamed:@"add_quotes~iphone"] forState:UIControlStateNormal];
[addBtn addTarget:self action:@selector(didAddOptionalCargo:) forControlEvents:UIControlEventTouchUpInside];
addBtn.frame = CGRectMake(ZHAppDelegate.cusCargos.count * ZHSCREENWIDTH / 3, 0, ZHSCREENWIDTH/3, self.scrollV.height);
[self.scrollV addSubview:addBtn];
}
[self.view setNeedsDisplay];
}不明白为什么显示不了呢.....
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货