初学者对于UIScrollView类似于新闻头条的标题栏滚动效果

#import "TaskColumnView.h"
 
@interface TaskColumnView : UIScrollView
 
- (instancetype)initWithFrame:(CGRect)frame;
 
@end
 
@implementation TaskColumnView
 
- (instancetype)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {
        [self setButtons];
    }
    return self;
}
 
- (void)setButtons{
    CGFloat width = 100.0;
    CGFloat height = 50.0;
    UIButton *button;
    NSString *path = [[NSBundle mainBundle] pathForResource:@"TaskDistribution" ofType:@"plist"];
    NSArray *array = [NSArray arrayWithContentsOfFile:path];
    for (int i=0; i < [array count]; i++) {
        button = [[UIButton alloc] initWithFrame:CGRectMake(width*i, 0, width, height)];
        [button setTitle:[array[i] objectForKey:@"name"] forState:UIControlStateNormal];
        [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
        [button setTag:[[array[i] objectForKey:@"catid"] intValue]];
        [self addSubview:button];
    }
}
 
- (void)buttonClick:(UIButton *)button{
     
}
@end
 
 
 
 
#import "MyLiabilityViewController.h"
#import "TaskColumnView.h"
 
@interface MyLiabilityViewController : UIViewController <UIScrollViewDelegate,UIToolbarDelegate>
{
    CGFloat _buttonWidth;
}
 
@property(nonatomic,retain)UIScrollView *navView;
@property(nonatomic, retain)TaskColumnView *columnView;
@property(nonatomic,strong)NSArray *columns;
@property(nonatomic,retain)UIScrollView *scrollView;
@property(nonatomic,strong)NSMutableArray *columnButtons;
@property(nonatomic,retain)UIToolbar *toolbar;
 
 
#import "MyLiabilityViewController.m"
    //菜单栏
    _toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, SWIDTH, 50)];
    [_toolbar setHidden:NO];
    [_toolbar setDelegate:self];
    [_toolbar setBackgroundImage:[UIImage imageNamed:@"bg.png"] forToolbarPosition:UIBarPositionTop barMetrics:UIBarMetricsDefault];
    [_toolbar setClipsToBounds:NO];
    [self.view addSubview:_toolbar];
     
    //导航栏
    _navView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, SWIDTH, 50)];
    _navView.delegate = self;
    _navView.showsHorizontalScrollIndicator = YES;
    [_toolbar addSubview:_navView];
     
    topShadowImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 49, SWIDTH/5, 1)];
    [topShadowImageView setImage:[UIImage imageNamed:@"icon-selected-slide-image.png"]];
    [_navView addSubview:topShadowImageView];
     
     
     _scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
    _scrollView.originY = 51;
    _scrollView.height-= 50;
    _scrollView.pagingEnabled = YES;
    _scrollView.showsVerticalScrollIndicator = NO;
    _scrollView.showsHorizontalScrollIndicator = NO;
    _scrollView.delegate = self;
    _scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
    _scrollView.backgroundColor = [UIColor bgColor];
//    [self.view addSubview:_scrollView];
     
     
    NSString *path = [[NSBundle mainBundle] pathForResource:@"TaskDistribution" ofType:@"plist"];
    self.columns = [NSArray arrayWithContentsOfFile:path];
    self.columnButtons = [NSMutableArray array];
    _buttonWidth = SWIDTH/5;
    _navView.contentSize = CGSizeMake(_buttonWidth*[self.columns count], 0);
    for (int i = 0; i < [self.columns count]; i++) {
        NSDictionary *column = self.columns[i];
        //添加导航按钮
        UIButton *columnButton = [[UIButton alloc] initWithFrame:CGRectMake(_buttonWidth*i, 10, _buttonWidth, 30)];
        [columnButton.layer setCornerRadius:3.0];
        [columnButton.layer setMasksToBounds:YES];
        [columnButton.titleLabel setFont:[UIFont fontWithName:DSXFontStyleMedinum size:16.0]];
        [columnButton setTag:[[column objectForKey:@"catid"] integerValue]];
        [columnButton setTitle:[column objectForKey:@"name"] forState:UIControlStateNormal];
        [columnButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [columnButton setTitleColor:[UIColor redColor] forState:UIControlStateSelected];
        [columnButton addTarget:self action:@selector(columnButtonClick:) forControlEvents:UIControlEventTouchUpInside];
        [_navView addSubview:columnButton];
        [self.columnButtons addObject:columnButton];
    }
    [self.columnButtons[0] setSelected:YES];//默认选中
    _scrollView.contentSize = CGSizeMake(SWIDTH*[self.columns count], 0);
     
    _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 50, SWIDTH, SHEIGHT-115)];
    _tableView.delegate = self;
    _tableView.dataSource = self;
    [self.view addSubview:_tableView];
     
    [_tableView registerClass:[ResponsibilityTaskTableViewCell class] forCellReuseIdentifier:@"aCell"];
     
    array = [[NSMutableArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"ResponsibilityTask" ofType:@"plist"]];
     
     
    //栏目按钮点击事件
- (void)columnButtonClick:(UIButton *)button{
    NSInteger index = 0;
    for (int i=0; i<[self.columnButtons count]; i++) {
        if (self.columnButtons[i] == button) {
            index = i;
//            [UIView animateWithDuration:0.25 animations:^{
//                [topShadowImageView setFrame:CGRectMake(button.frame.origin.x, 49, (SWIDTH-100)/5, 1)];
//            } completion:^(BOOL finished) {
//                if (finished) {
//                    _scrollView需要展示的内容
//                     
//                }
//            }];
            [UIView animateWithDuration:0.1 animations:^{
                [topShadowImageView setFrame:CGRectMake(button.frame.origin.x, 49, SWIDTH/5, 1)];
            }];
             
             
        }
        [self.columnButtons[i] setSelected:NO];
    }
    [button setSelected:YES];
    [_scrollView setContentOffset:CGPointMake(SWIDTH*index, _scrollView.contentOffset.y) animated:YES];
}
     
原文版权归作者所有,转载请注明出处
基于TROPOMI高光谱遥感仪器获取的大气成分观测资料,本研究聚焦于大气污染物一氧化氮(NO₂)的空间分布与浓度定量反演问题。NO₂作为影响空气质量的关键指,其精确监测对环境保护与大气科学研究具有显著价值。当前,利用卫星遥感数据结合先进算法实现NO₂浓度的高精度反演已成为该领域的重要研究方向。 本研究构建了一套以深度学习为核心的技术框架,整合了来自TROPOMI仪器的光谱辐射信息、观测几何参数以及辅助气象数据,形成多维度特征数据集。该数据集充分融合了不同来源的观测信息,为深入解析大气中NO₂的时空变化规律提供了数据基础,有助于提升反演模型的准确性与环境预测的可靠性。 在模型架构方面,项目设计了一种多分支神经网络,用于分别处理光谱特征与气象特征等多模态数据。各分支通过独立学习提取代表性特征,并在深层网络中进行特征融合,从而综合利用不同数据的互补信息,显著提高了NO₂浓度反演的整体精度。这种多源信息融合策略有效增强了模型对复杂大气环境的表征能力。 研究过程涵盖了系统的数据处理流程。前期预处理包括辐射定、噪声抑制及数据准化等步骤,以保障输入特征的质量与一致性;后期处理则涉及模型输出的物理量转换与结果验证,确保反演结果符合实际大气浓度范围,提升数据的实用价值。 此外,本研究进一步对不同功能区域(如城市建成区、工业带、郊区及自然背景区)的NO₂浓度分布进行了对比分析,揭示了人类活动与污染物空间格局的关联性。相关结论可为区域环境规划、污染管控政策的制定提供科学依据,助力大气环境治理与公共健康保护。 综上所述,本研究通过融合TROPOMI高光谱数据与多模态特征深度学习技术,发展了一套高效、准确的大气NO₂浓度遥感反演方法,不仅提升了卫星大气监测的技术水平,也为环境管理与决策支持提供了重要的技术工具。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值