删除我的分组UITableView中的顶部阴影?

时间:2011-05-30 01:12:17

标签: objective-c uitableview

我是一个小强迫症,这让我疯了。我很长一段时间一直在搞乱这些设置。

我有一个UITableView分组,我在顶部有一个阴影。当您点击顶部单元格时,它会删除。是什么给了什么?

过去一小时左右,我一直在强调这一点。有一个简单的解决方案吗?或者我只是疯了?

谢谢, 库尔顿

enter image description here

修改

viewDidLoad中:

formTableView.backgroundColor = [UIColor clearColor];
formTableView.layer.borderColor = [UIColor clearColor].CGColor;
formTableView.separatorColor = [UIColor colorWithRed:(194.0 / 255.0) green:(194.0 / 255.0) blue:(194.0 / 255.0) alpha: 1];

以下是我展示细胞的方式。 警告:这是很多代码。那里有很多你需要排序的东西,所以请自行承担风险! :)

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}


- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewCellEditingStyleNone;
}

// What to do when you click delete.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
return NO;
}

//RootViewController.m
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

if (section == 0) {
    return [formDataOne count];
} else {
    return [formDataTwo count];
}
}

//RootViewController.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {



static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}

for (UIView *subview in [cell.contentView subviews]) {
    [subview removeFromSuperview];
}

// Set up the cell...
NSString *cellValue;
if (indexPath.section == 0) {
    cellValue = [formDataOne objectAtIndex:indexPath.row];
} else {
    cellValue = [formDataTwo objectAtIndex:indexPath.row];
}


if (indexPath.section == 0) {
    cell.text = @"";
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    if (indexPath.row == 0) {
        addTitle = [[UITextField alloc] initWithFrame:CGRectMake(13, 13, 280, 20)];
        addTitle.borderStyle = UITextBorderStyleNone;
        addTitle.textColor = [UIColor blackColor]; //text color
        addTitle.font = [UIFont systemFontOfSize:16.0];  //font size
        addTitle.placeholder = @"Album Name";  //place holder
        addTitle.backgroundColor = [UIColor clearColor]; //background color
        addTitle.autocorrectionType = UITextAutocorrectionTypeNo;   // no auto correction support
        addTitle.keyboardType = UIKeyboardTypeDefault;  // type of the keyboard
        addTitle.returnKeyType = UIReturnKeyDone;  // type of the return key
        addTitle.clearButtonMode = UITextFieldViewModeWhileEditing; // has a clear 'x' button to the right
        addTitle.delegate = self;   // let us be the delegate so we know when the keyboard's "Done" button is pressed
        [cell.contentView addSubview:addTitle];
    } else if (indexPath.row == 1) {
        // Set up loading text and show it
        UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(13, 13, 280, 20)];
        myLabel.text = @"Private Album";
        myLabel.textColor = [UIColor blackColor];
        myLabel.textAlignment = UITextAlignmentLeft;
        myLabel.backgroundColor = [UIColor clearColor];
        myLabel.font = [UIFont fontWithName:@"Helvetica" size: 16.0];
        myLabel.numberOfLines = 0;
        //[myLabel sizeToFit];


        privateSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(199, 8, 0, 0)];
        [privateSwitch addTarget:self action:@selector(switchToggled:) forControlEvents: UIControlEventTouchUpInside];
        [cell.contentView addSubview:privateSwitch];
        //[privateSwitch setOn:NO animated:NO];

        if ([howToDisplay isEqualToString:@"no"]) {
            [privateSwitch setOn:NO animated:NO];
        } else {
            [privateSwitch setOn:YES animated:NO];
        }



        [cell.contentView addSubview:myLabel];
    } else {
        // Set up loading text and show it
        UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(13, 13, 280, 20)];
        myLabel.text = @"Comments";
        myLabel.textColor = [UIColor blackColor];
        myLabel.textAlignment = UITextAlignmentLeft;
        myLabel.backgroundColor = [UIColor clearColor];
        myLabel.font = [UIFont fontWithName:@"Helvetica" size: 16.0];
        myLabel.numberOfLines = 0;
        //[myLabel sizeToFit];
        [cell.contentView addSubview:myLabel];

        commentsSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(199, 8, 0, 0)];
        [cell.contentView addSubview:commentsSwitch];
        [commentsSwitch setOn:YES animated:NO];
    }

} else {
    //cell.text = cellValue;

    UILabel *labelOne = [[UILabel alloc] initWithFrame:CGRectMake(48, 12, 130, 20)];
    labelOne.text = cellValue;
    labelOne.textColor = [UIColor blackColor];
    [labelOne setFont:[UIFont boldSystemFontOfSize:16]];
    labelOne.textAlignment = UITextAlignmentLeft;
    labelOne.backgroundColor = [UIColor clearColor];
    //labelOne.font = [UIFont fontWithName:@"Helvetica"];
    labelOne.numberOfLines = 0;
    [cell.contentView addSubview:labelOne];



    if (indexPath.row == 0) {
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    } else if (indexPath.row == 1) {
        int countFacebook = [dataCeter.connectionFacebookArray count];
        if (countFacebook == 0) {
            cell.selectionStyle = UITableViewCellSelectionStyleBlue;
        } else {
            cell.selectionStyle = UITableViewCellSelectionStyleNone;
        }
    }  else if (indexPath.row == 2) {

    //}  else if (indexPath.row == 3) {

    }  else if (indexPath.row == 3) {
        int countTumblr = [dataCeter.connectionTumblrArray count];
        if (countTumblr == 0) {
            cell.selectionStyle = UITableViewCellSelectionStyleBlue;
        } else {
            cell.selectionStyle = UITableViewCellSelectionStyleNone;
        }
    }  else if (indexPath.row == 4) {

    }  else if (indexPath.row == 5) {

    } else {
        cell.selectionStyle = UITableViewCellSelectionStyleBlue;
    }

}

// Set imageView with correct thumbnail
UIImage *theImage;
if ([cellValue isEqualToString:@"Facebook"]) {

    theImage = [UIImage imageNamed:@"icon_small_facebook.png"];
    int countFacebook = [dataCeter.connectionFacebookArray count];
    NSLog(@"facebook? %d // %@", countFacebook, dataCeter.connectionFacebookArray);

    if (countFacebook != 0) {
        facebookSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(199, 8, 0, 0)];
        [cell.contentView addSubview:facebookSwitch];
        [facebookSwitch setOn:YES animated:NO];
        cell.accessoryType = UITableViewCellAccessoryNone;
    } else {
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }

} else if ([cellValue isEqualToString:@"Twitter"]) {

    theImage = [UIImage imageNamed:@"icon_small_twitter.png"];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

} else if ([cellValue isEqualToString:@"Flickr"]) {

    theImage = [UIImage imageNamed:@"icon_small_flickr.png"];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

} else if ([cellValue isEqualToString:@"Tumblr"]) {

    theImage = [UIImage imageNamed:@"icon_small_tumblr.png"];
    int countTumblr = [dataCeter.connectionTumblrArray count];

    if (countTumblr != 0) {
        tumblrSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(199, 8, 0, 0)];
        [cell.contentView addSubview:tumblrSwitch];
        [tumblrSwitch setOn:YES animated:NO];
        cell.accessoryType = UITableViewCellAccessoryNone;
    } else {
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }

} else if ([cellValue isEqualToString:@"Email"]) {

    theImage = [UIImage imageNamed:@"icon_small_email.png"];
    int countEmail = [dataCeter.connectionEmailArray count];

} else if ([cellValue isEqualToString:@"MMS"]) {

    theImage = [UIImage imageNamed:@"icon_small_mms.png"];
    int countMMS = [dataCeter.connectionSMSArray count];

} else if ([cellValue isEqualToString:@"Photostream"]) {

    theImage = [UIImage imageNamed:@"icon_small_photostream.png"];
    cell.accessoryType = UITableViewCellAccessoryNone;
    photostreamSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(199, 8, 0, 0)];
    [cell.contentView addSubview:photostreamSwitch];
    [photostreamSwitch setOn:YES animated:NO];

} else {

    theImage = nil;
    cell.accessoryType = UITableViewCellAccessoryNone;

}
cell.imageView.image = theImage;

    return cell;
}

2 个答案:

答案 0 :(得分:8)

将表格视图的分隔符样式设置为UITableViewCellSeparatorStyleSingleLine。它目前被设置为UITableViewCellSeparatorStyleSingleLineEtched,它可以在iPhone上显示加倍的顶部边框效果(在iOS 5上看起来更详细,在iPad上的iOS 3.2和4上看起来更详细)。

答案 1 :(得分:1)

你不是疯了,看起来那里有一个额外的像素。

尝试取出“分享”并查看是否仍然存在。很想知道阴影是在“共享”还是表本身上。

如果是这种情况,那么您知道标题视图有问题,而不是表格视图。