0

テーブルビューにカスタムセルを使用しています。テーブルビューの背景画像がセルの隅に表示されるため、セルの背景として丸い境界線を持つグラデーションレイヤーを使用しました(図に示すように)。

形

これらの角を非表示にするにはどうすればよいですか? 私のコードは次のとおりです。

viewDidLoad では、テーブルは次のように設定されています。

Table.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"mac-gray.png"]];
    Table.separatorColor = [UIColor clearColor];
    Table.rowHeight = 83;
    Table.showsVerticalScrollIndicator = NO;
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
@try {
  static NSString *cellIdentifier;
//[self adjustHeightOfTableview:tableView];

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    cellIdentifier = @"Cell";

    MarketWatch_iPhoneCell *cell = (MarketWatch_iPhoneCell *)[tableView dequeueReusableCellWithIdentifier:nil];
        if (cell == nil)
        {                
            NSString *nibName = @"iPhoneCell";

            NSArray *nib = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil];
            cell = (MarketWatch_iPhoneCell *)[nib objectAtIndex:0];

        }
    cell.layer.cornerRadius = 15.0;
    cell.clipsToBounds = YES;
    [cell addGradient];

    cell.selectionStyle = UITableViewCellSelectionStyleNone;

.......
return cell;
}


-(void) addGradient
{
    //adding gradient to cell
    gradLayer = [CAGradientLayer layer];
    gradLayer.colors = [NSArray arrayWithObjects:
                        (id)[UIColor darkGrayColor].CGColor,
                        (id)[UIColor colorWithRed:45/255 green:45/255 blue:45/255 alpha:1.0].CGColor,
                        (id)[UIColor colorWithRed:22/255 green:22/255 blue:22/255 alpha:1.0].CGColor,
                        (id)[UIColor blackColor].CGColor,
                        nil];
    CGRect frame = self.frame;
    frame.size.height -= cellMargin;
    gradLayer.frame = frame;

    gradLayer.cornerRadius = self.layer.cornerRadius;
    gradLayer.borderWidth = 1.0;
    gradLayer.borderColor = defaultColor;

    [self.layer insertSublayer:gradLayer below:self.contentView.layer];

}

編集

ユーザーが最大コンテンツオフセットをスクロールしようとしたときに画像を表示するために、テーブルの背景画像を設定しました。

colorwithpatternimage@Viral で提案されているように画像パターンを繰り返そうとすると、最大コンテンツ オフセットからスクロールしようとすると、そのパターンが表示されます。

だからここに私の2つの質問があります:

1) テーブルの背景画像を設定し、角の丸いセルを使用している場合、角を非表示にすることはできますか?

2) 画像を使用する方がはるかに簡単な場合、画像はどのようなサイズにする必要があり、ユーザーがオフセットを超えてスクロールした場合にそのパターンに従わないようにどのように設計する必要があります。

誰か私を導いてください。ありがとう...

4

3 に答える 3

0

作成した行に 2 つの行を追加しますUITableView

self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;

メソッドも入れcell.backgroundColor = [UIColor clearColor];ますcellForRowAtIndexPath

編集:

cell.backgroundView.backgroundColor = [UIColor clearColor];
于 2013-04-03T11:00:20.020 に答える