ここでは、これらのフィールドに値がない場合に備えて、電話番号、電子メール、生年月日、記念日、およびその他のラベルを非表示にする必要があります。これどうやってするの?
3 に答える
5
最も単純なものから始めて、さまざまな方法があります。
self.emailLabel.hidden = YES;
しかし、空のスペースに合わせてビューの他の部分を再フォーマットすることをお勧めします。シンプルにすると、次のようになります。
self.phoneLabel.frame = CGRectOffset(self.phoneLabel.frame, 0, -self.emailLabel.bounds.size.height);
...など、以下のすべてについて。しかし、これがいかに退屈になるかはおわかりでしょう。次のおそらく最良の代替手段は、そのデータの一部が存在するかどうかに基づいてセクション数を調整する UITableView です。それはこのようになります。モデルの部分とその値を含む配列の可変配列を準備します。
- (void)prepareModel {
self.model = [NSMutableArray array];
[self.model addObject:@[@"Name", @"Judy"]; // get "Judy" from your data
if (/* model has email */) {
[self.model addObject:@[@"Email", @"judy@gmail.com"]; // get email from your model
}
// and so on for conditional parts of your model
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return self.model.count;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
return self.model[section][0];
}
そして、cellForRow は を使用してセルを初期化しますself.model[section][1]
。
于 2013-06-15T06:20:04.843 に答える
1
あなたができることは、あなたが入れているUILabel's
の値が/である場合、単純に非表示にすることです。NSStrings
NULL
nil
NSString *labelString;
if([labelString length]>0)
{
}
else
Label.hidden = YES;
于 2013-06-15T06:14:47.890 に答える
1
テーブルの行にラベルを配置して、これを行うには UITableView を使用することをお勧めします。ラベルが空の場合、テーブルの行を削除すると、iOS がテーブルの高さを動的に変更します。
于 2013-06-15T06:32:00.273 に答える