gpt4 book ai didi

ios - UITableView具有白色背景而不是清晰的背景

转载 作者:行者123 更新时间:2023-12-01 17:40:34 24 4
gpt4 key购买 nike

我有一个UITableView,我正在尝试提供清晰的背景,以在背景中显示ImageView,但是背景为白色,我不确定为什么。

这是我的代码:

#import "GRSYouTubeFeed.h"
#import "RSSChannel.h"
#import "RSSItem.h"
#import "WebViewController.h"
#import "DTCustomColoredAccessory.h"
#import "SVProgressHUD.h"
#import "TWTSideMenuViewController.h"
#import "UIImage+ImageEffects.h"

@implementation GRSYouTubeFeed
{
UIActivityIndicatorView *loadingIndicator;
}
@synthesize webViewController;

- (void)viewDidLoad
{
UIImage *normalBackground = [UIImage imageNamed:@"MenuBackground.png"];
UIImage *effectImage = [normalBackground applyDarkEffect];
UIImageView *blurredBackground = [[UIImageView alloc]init];
blurredBackground.image = effectImage;

UIBarButtonItem *openItem = [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStylePlain target:self action:@selector(openButtonPressed)];
self.navigationItem.leftBarButtonItem = openItem;

self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
self.tableView.backgroundColor = [UIColor clearColor];
[self.tableView setBackgroundView:blurredBackground];
self.title = @"YouTube";

UISwipeGestureRecognizer *swipeRecognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeRight:)];
swipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeRecognizer];

[[SVProgressHUD appearance]setHudBackgroundColor:[UIColor whiteColor]];
[[SVProgressHUD appearance]setHudForegroundColor:[UIColor blackColor]];

[SVProgressHUD showWithStatus:@"Loading"];
// [SVProgressHUD showWithStatus:@"Loading" maskType:SVProgressHUDMaskTypeGradient];
}

- (IBAction)swipeRight:(UIGestureRecognizer *)sender
{
[self.sideMenuViewController openMenuAnimated:YES completion:nil];
}

- (void)openButtonPressed
{
[self.sideMenuViewController openMenuAnimated:YES completion:nil];
}

- (void)viewDidDisappear:(BOOL)animated
{
[SVProgressHUD dismiss];
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
NSLog(@"%@ found a %@ element", self, elementName);
if ([elementName isEqual:@"channel"])
{
// If the parser saw a channel, create new instance, store in our ivar
channel = [[RSSChannel alloc]init];

// Give the channel object a pointer back to ourselves for later
[channel setParentParserDelegate:self];

// Set the parser's delegate to the channel object
[parser setDelegate:channel];
}
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// return 0;
NSLog(@"channel items %d", [[channel items]count]);
return [[channel items]count];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 50;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// return nil;
UIImage *normalBackground = [UIImage imageNamed:@"MenuBackground.png"];
UIImage *effectImage = [normalBackground applyDarkEffect];
UIImageView *blurredBackground = [[UIImageView alloc]init];
blurredBackground.image = effectImage;

tableView.backgroundView = blurredBackground;

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
if (cell == nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"UITableViewCell"];
cell.textLabel.font=[UIFont systemFontOfSize:16.0];
}
RSSItem *item = [[channel items]objectAtIndex:[indexPath row]];

NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ssZ"];
NSDate *pubDate = [formatter dateFromString:[item date]];
[formatter setDateStyle:NSDateFormatterMediumStyle];
NSString *dateString = [formatter stringFromDate:pubDate];
NSLog(@"Date String: %@", dateString);

[[cell textLabel]setText:[item title]];

NSLog(@"Date: %@", [item date]);

tableView.backgroundColor = [UIColor clearColor];
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.textLabel.textColor = [UIColor whiteColor];

DTCustomColoredAccessory *accessory = [DTCustomColoredAccessory accessoryWithColor:cell.textLabel.textColor];
cell.accessoryView =accessory;

return cell;
}

- (void)fetchEntries
{
// Create a new data container for the stuff that comes back from the service
xmlData = [[NSMutableData alloc]init];

// Construct a URL that will ask the service for what you want -
// note we can concatenate literal strings together on multiple lines in this way - this results in a single NSString instance
NSURL *url = [NSURL URLWithString:@"http://gdata.youtube.com/feeds/base/users/LittleHeartRecords/uploads?alt=rss&v=2&orderby=published&client=ytapi-youtube-profile"];

// Put that URL into an NSURLRequest
NSURLRequest *req = [NSURLRequest requestWithURL:url];

// Create a connection that will exchange this request for data from the URL
connection = [[NSURLConnection alloc]initWithRequest:req delegate:self startImmediately:YES];
}

- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];

if (self)
{
[self fetchEntries];
}

return self;
}

// This method will be called several times as the data arrives
- (void)connection:(NSURLConnection *)conn didReceiveData:(NSData *)data
{
// Add the incoming chunk of data to the container we are keeping
// The data always comes in the correct order
[xmlData appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)conn
{
/* We are just checking to make sure we are getting the XML
NSString *xmlCheck = [[NSString alloc]initWithData:xmlData encoding:NSUTF8StringEncoding];
NSLog(@"xmlCheck = %@", xmlCheck);*/

// [loadingIndicator stopAnimating];
[SVProgressHUD dismiss];

// Create the parser object with the data received from the web service
NSXMLParser *parser = [[NSXMLParser alloc]initWithData:xmlData];

// Give it a delegate
[parser setDelegate:self];

//Tell it to start parsing - the document will be parsed and the delegate of NSXMLParser will get all of its delegate messages sent to it before this line finishes execution - it is blocking
[parser parse];

// Get rid of the XML data as we no longer need it
xmlData = nil;

// Reload the table.. for now, the table will be empty
[[self tableView]reloadData];

NSLog(@"%@\n %@\n %@\n", channel, [channel title], [channel infoString]);
}

- (void)connection:(NSURLConnection *)conn didFailWithError:(NSError *)error
{
// Release the connection object, we're done with it
connection = nil;

// Release the xmlData object, we're done with it
xmlData = nil;

[SVProgressHUD dismiss];

// Grab the description of the error object passed to us
NSString *errorString = [NSString stringWithFormat:@"Fetch failed: %@", [error localizedDescription]];

// Create and show an alert view with this error displayed
UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"Error" message:errorString delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[av show];
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[[webViewController webView]loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];

// Push the web view controller onto the navigation stack - this implicitly creates the web view controller's view the first time through
// [[self navigationController]pushViewController:webViewController animated:YES];
[self.navigationController pushViewController:webViewController animated:YES];

// Grab the selected item
RSSItem *entry = [[channel items]objectAtIndex:[indexPath row]];

NSLog(@"Channel Items: %@", [[channel items]objectAtIndex:[indexPath row]]);

// Construct a URL with the link string of the item
NSURL *url = [NSURL URLWithString:[entry link]];

NSLog(@"Link: %@", [entry link]);

// Construct a request object with that URL
NSURLRequest *req = [NSURLRequest requestWithURL:url];

NSLog(@"URL: %@", url);

// Load the request into the web view
[[webViewController webView]loadRequest:req];
webViewController.hackyURL = url;
NSLog(@"Request: %@", req);

NSLog(@"Title: %@", [entry title]);

NSLog(@"Pub Date: %@", [entry date]);

[tableView deselectRowAtIndexPath:indexPath animated:YES];
}

@end

这是我的结果:

最佳答案

您还需要将clearColor设置为所有单元格的背景色。

关于ios - UITableView具有白色背景而不是清晰的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21239437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com