0

を使用して、消えるアニメーションでフェードアウトするようにアルファを 0 にUIView animateWithDuration設定しています。ただし、フェードすると、フェードする前に各セルに黒くなる領域があるUITableViewことに気付きました。UITableView画像がある場合、その後ろの領域全体がフェードしながら黒くなり、通常は左右両方の端のはめ込みスペースが黒くなります。サブビューのすべての背景色を白に設定しようとしましたが、UITableViewCellまだ機能しません。

このテーブルビューは UITableViewController に埋め込まれていません。代わりに、メニューとして使用している別のフローティング tableView です。

以下は、フェード時に何が起こるかの例です。

ここに画像の説明を入力

これも私が使用しているコードです

[UIView animateWithDuration:ImageViewControllerBarsAnimationDuration delay:0 options: UIViewAnimationOptionAllowUserInteraction animations:^
    {
            if (self.menu.superview)
            {
                self.menu.alpha = 0;
            }
    } 
completion:^(BOOL finished)
{
            if (self.menu.superview)
            {
                [self.menu removeFromSuperview];
                self.menu.alpha = 1;
            }   
}];

+

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    static NSString *cellIdentifier = @"Cell";

    UITableViewCell *tableViewCell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (tableViewCell == nil) 
    {
        tableViewCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];
    }

    [[tableViewCell textLabel] setFont:[UIFont fontWithName: @"Helvetica-Bold" size: 17]];
    [[tableViewCell textLabel] setText: [self.menuItems objectAtIndex:0]];
    [[tableViewCell imageView] setImage: [self.menuItems objectAtIndex:1]];

    return tableViewCell;
}
4

2 に答える 2

0

DTS はこれに対する解決策を提供してくれました。次のことを行う必要があります。

self.myTableView.backgroundView = nil;
self.myTableView.backgroundColor = [UIColor clearColor];

次に、cellForRowAtIndexPathメソッド内でこれを行う必要があります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *kOneCellID = @"cellID";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kOneCellID];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kOneCellID] autorelease];
        cell.backgroundView = [[UIView alloc] init];
        cell.backgroundView.backgroundColor = [UIColor whiteColor];

    }

    ...
}
于 2012-07-27T22:26:08.513 に答える
-4

セルフメニューとは?tableView をその場所に配置すると、まったく問題なく動作します。

[UIView animateWithDuration:ImageViewControllerBarsAnimationDuration delay:0 options: UIViewAnimationOptionAllowUserInteraction animations:^
    {
            if (tableView.superview)
            {
                tableView.alpha = 0;
            }
    } 
completion:^(BOOL finished)
{
            if (tableView.superview)
            {
                [tableView removeFromSuperview];
                tableView.alpha = 1;
            }   
}];
于 2012-06-29T06:11:35.377 に答える