`
百合不是茶
  • 浏览: 355912 次
社区版块
存档分类
最新评论

UIScrollView,UITableView的简单使用

阅读更多

UIScrollView的简单使用

 

1,创建对象

2,设置滑动区域

3,创建滑动的View

4,将滑动的view添加到ScrollView上显示

5,释放对象

   CGRect screenBounds = [ [UIScreen mainScreen]bounds];//返回的是带有状态栏的Rect
    
//    CGRect rect = [ [UIScreen mainScreen]application Frame];//不包含状态栏的Rect

    //创建ScrollViewiew
    UIScrollView *scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, 500.0f, 500.0f)];
    scrollView.frame=screenBounds;
    scrollView.backgroundColor=[UIColor redColor];
    
    //设置ScollView的滑动区域
    scrollView.contentSize=CGSizeMake(500, 1100);
    
    UIImageView *myImageView= [[UIImageView alloc] initWithFrame: CGRectMake( 0, 0, 500, 1100)];
    
    
    [myImageView setImage:[UIImage imageNamed:@"bk.jpg"]];
    //img添加到Scollview
    [scrollView addSubview:myImageView];
    //scollView添加到View
    [self.view addSubview:scrollView];
    [scrollView release];
    [myImageView release];

 

 

2,UITableView的简单使用,由于最近在做金融相关的开发大量使用到了table相关的控件,android的控件都要自己实现,ios确实自带的效果,想想就有点操蛋 ,,,谁叫ios比android要简单呢?

 



 

 

1,定义标题数据

2,定义标题分别对应的数据

3,实现数据源代理和表格代理(UITableViewDataSource,UITableViewDelegate

4,创建TableView

5,实现相关的方法

#import "TableViewController.h"

@interface TableViewController (){

    UITableView *table;
}

@property(strong,nonatomic)NSMutableArray *arrayList1; //数据源
@property (strong,nonatomic)NSMutableArray *arrayTitle;//标题
@property(strong,nonatomic)NSMutableArray *arrayList2;

@end

@implementation TableViewController

@synthesize arrayList1;
@synthesize arrayTitle;
@synthesize arrayList2;


- (void)viewDidLoad {
    [super viewDidLoad];
    
    // Uncomment the following line to preserve selection between presentations.
//     self.clearsSelectionOnViewWillAppear = NO;
    
    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
     self.navigationItem.rightBarButtonItem = self.editButtonItem;
    
    table=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 430, 600)];
    //
    table.dataSource=self;
    table.delegate=self;
    
    if (arrayList1==nil) {
        arrayList1 =[[NSMutableArray alloc]initWithObjects:@"美元/日元",@"美元/韩元",@"韩元/日元",@"港币/日元",@"美元/欧元",@"美元/英镑",@"美元/新加坡元",@"美元/澳元",@"美元/卢布",@"泰铢/日元",@"英镑/泰铢",@"新加坡元/澳门元",@"美元/港币",@"港币/台币",@"台币/越南盾",@"美元/韩元", nil];
        arrayTitle=[[NSMutableArray alloc]initWithObjects:@"自选",@"交叉", nil];
        
        arrayList2=[[NSMutableArray alloc]initWithObjects:@"美元/港币",@"韩元/日元", nil];
      
    }
    
    
    
  
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


//设置标题
-(NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    
    return [arrayTitle objectAtIndex:section];
}


#pragma mark - Table view data source
//指定多少分区,根据arrayTitle计算
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
#warning Incomplete implementation, return the number of sections
    return [arrayTitle count];
}

//设置数据
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
#warning Incomplete implementation, return the number of rows
    //1,根据当前点击的区域设置数据
    switch (section) {
        case 0:
            
            return [arrayList1 count];
        case 1:
            return [arrayList2 count];
            
        default:
            break;
    }
    
    
    return 0;
    
}

//绘制数据  cellForRowAtINdexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
//    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
    static NSString * string = @"cell";
    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:string];
    if(cell ==  nil)
    {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:string];
    }
    
    //根据分区操作
    switch (indexPath.section) {
        case 0:
            [[cell textLabel] setText:[arrayList1 objectAtIndex:indexPath.row]];
            break;
            
        case 1:
            [[cell textLabel] setText:[arrayList2 objectAtIndex:indexPath.row]];
            
            break;
        default:
            break;
    }
    
    return cell;
}


// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the specified item to be editable.
    return YES;
}



// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Delete the row from the data source
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
    } else if (editingStyle == UITableViewCellEditingStyleInsert) {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
    }   
}



// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
}



// Override to support conditional rearranging of the 

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the item to be re-orderable.
    return YES;
}



#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}


@end

 

1,titleForHeaderInSection  设置数据

2,numberOfSectionsInTableView 根据标题数目进行分区

 

3,numberOfRowsInSection 指定区域数据的条数

 

4,cellForRowAtIndexPath 绘制数据、

    创建cell

  

    static NSString * string = @"cell";
    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:string];
    if(cell ==  nil)
    {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:string];
    }
    

 

   

  • 大小: 110.9 KB
0
0
分享到:
评论

相关推荐

    uiscrollview uitableview上拉刷新

    在iOS开发中,`UIScrollView` 和 `UITableView` 是两个核心组件,用于实现可滚动内容的显示,例如在应用中展示大量的列表数据。本教程将详细讲解如何在 `UIScrollView`(尤其是 `UITableView`)中实现上拉和下拉刷新...

    UISCrollView与UITableView嵌套使用

    ### UISCrollView与UITableView嵌套使用 #### 知识点概述 在iOS应用开发过程中,经常需要将`UIScrollView`与`UITableView`进行嵌套使用,以实现更加丰富的界面交互和展示效果。例如,在一个水平滑动的界面中,每个...

    UISCrollView+UITableView

    当需要实现类似网易新闻首页那样,既有图片轮播又有列表数据展示的效果时,通常会结合`UISCrollView`和`UITableView`进行使用。现在,让我们深入探讨这两种控件的结合使用及其背后的原理。 首先,`UISCrollView`是...

    多个UIScrollView、UITableView嵌套

    在iOS开发中,当面临需要在一个视图中展示大量数据并允许用户滚动浏览时,我们通常会使用UIScrollView或其子类,如UITableView和UICollectionView。然而,问题在于,当多个UIScrollView或者它们的子类(如...

    iOS中UIScrollView嵌套UITableView的实践教程

    最近因为工作项目中需要用到UIScrollView嵌套UItableView嵌套交互问题,顺便网上搜了下的demo,发现实现的效果并不是很理想,滑动偶尔会有延迟现象,所以自己想了个办法,顺便把自己实现写了个demo分享出来,一起来...

    UIScrollView/UITableView布局的影响因素总结

    在iOS开发中,`UIScrollView`和`UITableView`是两种非常重要的视图组件,它们用于展示大量数据并允许用户滚动查看。这两个组件的布局设计对于用户体验至关重要。本篇文章将深入探讨`UIScrollView`和`UITableView`...

    TYSnapshotScroll:将滚动视图页面另存为图像,支持UIScrollView,UITableView,UICollectionView,UIWebView,WKWebView。(支持iOS13)。

    将滚动视图页面另存为图像,支持UIScrollView,UITableView,UICollectionView,UIWebView,WKWebView。(支持iOS13) iOS13 UIScrollView中的UITableVieW UIScrollView UITableView UICollectionView ...

    UITableView横向实现——向UIScrollView中添加UITableView

    总之,嵌套UITableView在UIScrollView中是一个常见的做法,但在实现时需要特别注意单元格重用机制的正确使用,以及在处理复杂布局时的坐标计算和条件判断。通过仔细调试和优化上述提到的代码段,开发者应该能够解决...

    iOS 下类似UITableView的可循环列表利用UIScrollView制作

    在这种情况下,可以不直接使用UITableView,而是通过UIScrollView来实现类似的功能。以下将详细讲解如何利用UIScrollView制作iOS下的类似UITableView的可循环列表。 首先,我们需要了解UIScrollView的基本用法。...

    UITableView+UIScrollView

    在iOS开发中,UITableView与UIScrollView是两种非常重要的视图组件,它们各自有着特定的用途,但有时我们需要将它们结合使用,以实现特定的功能,比如在本案例中的“轮播图和TableView的混合代码”。这个...

    iOS UIScrollView 详细使用说明

    对于包含大量数据的ScrollView,应该考虑使用`UICollectionView`或者`UITableView`,因为它们能更高效地重用cell,减少内存消耗。对于静态内容,可以考虑预渲染部分视图,减少运行时的渲染负担。 #### 8. ...

    CLTableWithFooterViewController:到达UIScrollView或UITableView的底部时,轻松添加固定的页脚图像

    CLTableWithFooterViewController 是一个Objective-C库,专为iOS应用设计,主要用于在用户滚动到UIScrollView或UITableView的底部时,能够方便地添加并显示一个固定的页脚视图。这个库简化了在滚动视图中实现固定...

    ios scrollview嵌套tableview同向滑动的示例

    在iOS开发中,有时我们需要在一个UIScrollView中嵌套一个UITableView,以实现更复杂的界面布局。本文将探讨如何在iOS中处理这种嵌套同向滑动的情况,以及如何避免一些常见的问题。 首先,我们要明白,Apple官方并不...

    UIScrollView的简单例子

    总的来说,这个简单的例子展示了如何创建和使用UIScrollView,包括设置内容视图、内容大小、手势识别、contentOffset和contentInset,以及自动布局的应用。在实际项目中,通过不断实践和深入学习,我们可以掌握更...

    UIScrollView分页循环滑动

    总的来说,掌握 `UIScrollView` 和 `UITableView` 的滚动与分页特性是 iOS 开发中的重要技能,它们能帮助你构建各种动态和交互丰富的界面。通过不断实践和学习,开发者可以更好地理解和运用这些组件,提升应用的用户...

    UITableview处理键盘遮挡

    至于“没有实现控件复用导致的出现重复文本,以及部分bug”,这是关于`UITableView`的数据源和代理方法使用不当的问题。在`UITableView`中,为了提高性能和节省内存,通常会使用`cellForRowAt`方法复用`...

    UIScrollView 用法详解

    可以使用UICollectionView或UITableView代替单纯的ScrollView,以便更有效地管理视图。另外,使用Content Offset和Content Insets的配合,可以避免不必要的子视图渲染,提高滚动性能。 总的来说,UIScrollView是一...

    UIScrollView自适应高度或宽度

    - `estimatedRowHeight` 和 `rowHeight`:对于UITableView,可以设置这两个属性来帮助估算和计算高度,特别是在使用自动布局时。 - `intrinsicContentSize`:当子视图有内在大小(比如UILabel的文字内容决定其大小...

    Animated top menu for UITableView / UICollectionView / UIScrollView written in Swift.zip

    Animated top menu for UITableView / UICollectionView / UIScrollView written in Swift.zip,uitableview的动画顶部菜单/uicollectionview/uiscrollview用swift编写

Global site tag (gtag.js) - Google Analytics