样式化的 UITableViewCell(试图复制 Facebook iPhone App Look)[重复]
Posted
技术标签:
【中文标题】样式化的 UITableViewCell(试图复制 Facebook iPhone App Look)[重复]【英文标题】:Styled UITableViewCell (trying to copy Facebook iPhone App Look) [duplicate] 【发布时间】:2012-03-23 10:12:32 【问题描述】:在 Facebook iPhone 应用程序的左侧有一个滑出视图,显示UITableView
。
我正在尝试复制此表格的外观,每个单元格都有似乎是自定义边框(看起来像一条非常细的浅灰色和黑色线条?)。此外,在选择单元格时,单元格会以深灰色突出显示,而不是默认的蓝色。
我尝试在 *** 上搜索,确实有一个类似的问题,但只有两个回复回复使用 Three20
库。
我想知道如何使用UIKit
实现相同的外观,而不必使用Three20
库。
任何有关如何重现 UITableViewCell
特定样式的帮助将不胜感激!
编辑#1:澄清一下,我知道如何用图像和文字自己制作UITableViewCells
。我不知道怎么做的部分是自定义边框和选择颜色,使其看起来像 Facebook 示例图像。
编辑#2:可以肯定的是,我也不是在问如何制作滑出视图。我只是在询问如何根据下面 Facebook iphone 应用程序的屏幕截图来设置表格的样式。 :)
谢谢!
【问题讨论】:
【参考方案1】:可以通过使用自定义行的图像和滑动效果的动画来完成
【讨论】:
我正要进行编辑。我找到了这个链接:cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html,他似乎只是在使用图像作为行。所以除了为每一行使用图像之外,你可以用 UIKit 做些什么吗?我认为可能有一些 CALayer 诡计...... 实际上您可以更改单元格背景和分隔符的颜色,但这不会给您想要的感觉。为此,使用图像是最好的选择,也是一种简单的方法,它会给你同样的效果 谢谢,这就是我的怀疑! :)【参考方案2】:这是一个有左右菜单的 Slider,你显然可以像我一样在代码中禁用右边的菜单!
滑出式菜单:DDMenuController
这是我做的一些自定义,看起来像 FB 的,只是不是图片!
LeftController.m
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
- (void)viewDidLoad
[super viewDidLoad];
navBarMenuArray = [[NSArray alloc] initWithObjects:
@"My Photos",
@"My Friends",
@"Inbox",
@"Stores",
@"Offers",
@"Settings",nil];
navBarImagesArray = [[NSArray alloc] initWithObjects:
@"photos.jpg",
@"friends.jpg",
@"inbox.jpg",
@"stores.jpg",
@"settings.jpg", nil];
searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 240.0, 45.0)];
searchBar.tintColor = UIColorFromRGB(0x0075bb);
searchBar.placeholder = @"Search a brand or store...";
[self.view addSubview:searchBar];
[searchBar release];
if (!_tableView)
//UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 44, 320, 506) style:UITableViewStylePlain];
tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
tableView.delegate = (id<UITableViewDelegate>)self;
tableView.dataSource = (id<UITableViewDataSource>)self;
[self.view addSubview:tableView];
self.tableView = tableView;
- (void)viewDidUnload
[super viewDidUnload];
self.tableView = nil;
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
return navBarMenuArray.count;
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
return 1;
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.textLabel.font = [UIFont fontWithName:@"ArialMT" size:17];
cell.textLabel.text = [navBarMenuArray objectAtIndex:indexPath.row];
cell.textLabel.textColor = UIColorFromRGB(0xa2a9b9);
cell.textLabel.shadowColor = UIColorFromRGB(0x212838);
cell.textLabel.shadowOffset = CGSizeMake(1.0, 1.0);
cell.textLabel.backgroundColor = UIColorFromRGB(0x32394b);
self.tableView.backgroundColor = UIColorFromRGB(0x32394b);
self.tableView.separatorColor = UIColorFromRGB(0x262d3d);
return cell;
【讨论】:
以上是关于样式化的 UITableViewCell(试图复制 Facebook iPhone App Look)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在普通样式表视图上设置 UITableViewCell 背景颜色?
UITableViewCell 滚动时复制 UITextfield 子视图
所有样式化的组件都返回任何 (@types/styled-components)