我正在开发一个 RSS 阅读器应用程序,我试图让该应用程序只有 2 个视图(tableview 和 webview) 我不知道如何在我的 tableview 上添加 UIView。
1 回答
因为,我无法理解你的问题,希望能成为你的解决方案。
1.解决方案一,在同一页面上显示内容
一个。为此,在您的界面构建器文件中,拖动 UIWebView 并将其作为子视图添加到视图中。保持此 webview 顶部对齐。
湾。现在拖动 UITableView 并将其作为子视图添加到 y=150 的 UIView 并保持此 tableview 底部对齐。
C。开始将接口文件连接到您的代码文件。首先,您需要在 .h 头文件中声明它,如下所示。
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITableViewDataSource,UITableViewDelegate,UIWebViewDelegate>
{
NSMutableArray *feedsURLArray;
}
@property (weak,nonatomic) IBOutlet UITableView *feedsTableView;
@property (weak,nonatomic) IBOutlet UIWebView *feedsWebView;
@end
声明后转到您的界面构建器文件。现在右键单击您的 tableView ,您将看到 datasource 和 delegate ,将它们指向您的 viewController。与它一起通过将其连接为“参考插座”来制作 feedsTableView。
还将 feedsWebView 连接为“参考插座”。
d。完成连接后,我们就可以开始编写代码了。让我们用 urls 初始化表格,点击 UITableViewCell 我们在 UIWebView 对象上创建一个 NSURLRequest。这将写入您的 .m 文件中。
@implementation ViewController
@synthesize feedsTableView,feedsWebView;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
feedsURLArray=[[NSMutableArray alloc] init];
[feedsURLArray addObject:@"https://www.facebook.com"];
[feedsURLArray addObject:@"http://www.yahoo.com"];
[feedsURLArray addObject:@"http://www.google.com"];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark Table Methods
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return feedsURLArray.count;
}
-(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellIdentifier=@"Cell";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell==nil){
cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
cell.textLabel.text=[feedsURLArray objectAtIndex:indexPath.row];
return cell;
}
-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *urlStr=[feedsURLArray objectAtIndex:indexPath.row];
[self.feedsWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlStr]]];
}
@end
2.第二种解决方案是您可以将 UIViewController 添加到 UINavigationController。此 UIViewController 将仅显示提要 url 及其相关详细信息。
然后,您需要创建另一个 UIViewController,它只有一个 UIWebView,当 UITableViewCell 被选中时,它将被推送到 UINavigationController。
3.第三种解决方案是创建一个 customCell。这个单元格将有一个 UIWebView 作为子视图之一。
为此,最初您可以将单元格的高度保持为 44.0,但是一旦选择了此单元格,您就可以将高度增加到 200 ,以便您的 UIWebView 可见。当点击发生时,在 UIWebView 上调用 loadRequest。
在应用程序中使用 UIWwebView 时要知道的事情,您必须自己处理导航(后退和前进)。一个想法是使用以下代码打开 ios 默认浏览器。
-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *urlStr=[feedsURLArray objectAtIndex:indexPath.row];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]];
}
或者请参阅此站点以获取有关创建浏览器的演示,该浏览器可以像 iOS 默认浏览器一样处理来回导航。