UIScrollView, UIPageControl,UITableView

本文详细介绍了使用Swift语言开发iOS应用的基本步骤,包括环境搭建、基础语法、常用框架和实战案例,帮助开发者迅速掌握iOS开发技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UIScrollView

    // 重要属性,这个属性可以让scrollview滚动起来

    // 滚动范围

 

    scrcollView.contentSize =CGSizeMake(WIDTH *6, HEIGHT);

     // 偏移量

    scrcollView.contentOffset =CGPointMake(WIDTH *2, 0);

    

    //关掉边界回弹的效果

    scrcollView.bounces =NO;

    

    //关闭滚动条 水平竖着滚动条是两个ScrollView的子视图,如果关了,就不添加这两个子视图了;

    scrcollView.showsHorizontalScrollIndicator =NO;

    scrcollView.showsVerticalScrollIndicator =NO;

    

    // 按页进行滚动

    scrcollView.pagingEnabled =YES;


#pragma mark 只要滚动就会触发协议方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

//    NSLog(@"开始滚动");

}

#pragma mark 减速的时候会触发的方法

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

}

UIPageControl

    self.pageControl.numberOfPages =9;

    self.pageControl.currentPageIndicatorTintColor = [UIColorblackColor];

    self.pageControl.pageIndicatorTintColor = [UIColorgrayColor];

    

    [self.pageControladdTarget:selfaction:@selector(pageAction:)forControlEvents:UIControlEventValueChanged];

    self.pageControl.currentPage =0;

UISwitch 

@property(nonatomic,getter=isOn)BOOL on;

- (void)setOn:(BOOL)on animated:(BOOL)animated;


UIStepper 和 UISlider调色板

#import "MainViewController.h"

@interface MainViewController ()
@property(nonatomic, retain)UISlider *redslider;
@property(nonatomic, retain)UISlider *blueslider;
@property(nonatomic, retain)UISlider *yellowslider;
@property(nonatomic, retain)UILabel *label;
@property(nonatomic, retain)UIStepper *stepper;
@end

@implementation MainViewController
- (void)dealloc
{
    [_label release];
    [_stepper release];
    [_redslider release];
    [_yellowslider release];
    [_blueslider release];
    [super dealloc];
}
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor blackColor];
    // Do any additional setup after loading the view.
    _redslider = [[UISlider alloc] initWithFrame:CGRectMake(50, 100, 300, 50)];
    _redslider.thumbTintColor = [UIColor redColor];
    _redslider.minimumTrackTintColor = [UIColor redColor];
    [_redslider addTarget:self action:@selector(change) forControlEvents:UIControlEventValueChanged];
    _redslider.maximumValue = 1;[self.view addSubview:_redslider];
    
    _yellowslider = [[UISlider alloc] initWithFrame:CGRectMake(50, 200, 300, 50)];
    _yellowslider.thumbTintColor = [UIColor yellowColor];
    _yellowslider.minimumTrackTintColor = [UIColor yellowColor];
     [_yellowslider addTarget:self action:@selector(change) forControlEvents:UIControlEventValueChanged];
    _yellowslider.maximumValue = 1;[self.view addSubview:_yellowslider];
    
    _blueslider = [[UISlider alloc] initWithFrame:CGRectMake(50, 300, 300, 50)];
    _blueslider.thumbTintColor = [UIColor blueColor];
     [_blueslider addTarget:self action:@selector(change) forControlEvents:UIControlEventValueChanged];
    _blueslider.maximumValue = 1;[self.view addSubview:_blueslider];
    _blueslider.minimumTrackTintColor = [UIColor blueColor];
    
    _label = [[UILabel alloc] initWithFrame:CGRectMake(50, 500, 300, 50)];
    self.label.backgroundColor = [UIColor whiteColor];
    _label.text = @"r : 0.00 g : 0.00 b : 0.00, alpha : 1.00";
    _label.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:self.label];
    [_label release];
    
    _stepper = [[UIStepper alloc] initWithFrame:CGRectMake(150, 440, 50, 50)];
    self.stepper.value = 1;
    self.stepper.stepValue = 0.05;
    self.stepper.minimumValue = 0;
    self.stepper.maximumValue = 1;
    self.stepper.autorepeat = YES;
    [self.stepper addTarget:self action:@selector(change) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:self.stepper];
    [_stepper release];
    
}
- (void)change{
    self.view.backgroundColor = [UIColor colorWithRed:self.redslider.value green:self.yellowslider.value blue:self.blueslider.value alpha:self.stepper.value];
    self.label.text = [NSString stringWithFormat:@"r : %-.02f g : %-.02f b : %-.02f, alpha : %.02lf", self.redslider.value, self.yellowslider.value, self.blueslider.value, self.stepper.value];
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 64) style:UITableViewStylePlain];

    tableView.backgroundColor = [UIColor blackColor];

    [self.view addSubview:tableView];

    tableView.bounces = NO;

    [tableView release];

    

    // 设置行高

    tableView.rowHeight = 100;

    tableView.tag = 10001;

    tableView.dataSource = self;

    tableView.delegate = self;

#pragma mark tableview 第一个必须实现的协议方法,区分区内有多少行
// 先设置分区 后设置每个分区多少行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
#pragma mark 第二个协议方法,主要是用来现实数据
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // 创建cell
    static NSString *reuse = @"reuse";
    // 当cell显示结束后,会把cell统一放到重用池中,等需要cell显示,先从重用池找,看有没有闲置的的cell,如果有的话就用闲置的cell,如果没有在创建
    // cell的重用目的是为了节约创建成本,用有限的cell把所有的数据都显示出来
    // tableView通过重用标志在重用池中找cell,如果有闲置的cell,cell会保存一个有效的cell对象,如果没有,cell里面这是nil,空
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuse];
    if (!cell) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuse] autorelease];
    }
    
    cell.textLabel.text = self.array[indexPath.row];
    cell.detailTextLabel.text = [NSString stringWithFormat:@"%ld, %ld", indexPath.section, indexPath.row];
    cell.imageView.image = [UIImage imageNamed:@"angry_00.jpg"];
    NSLog(@"%ld", indexPath.row);
    return cell;
}
#pragma mark tableview里面有多少个section;
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;



内容概要:本文针对火电厂参与直购交易挤占风电上网空间的问题,提出了一种风火打捆参与大用户直购交易的新模式。通过分析可再生能源配额机制下的双边博弈关系,建立了基于动态非合作博弈理论的博弈模型,以直购电价和直购电量为决策变量,实现双方收益均衡最大化。论文论证了纳什均衡的存在性,并提出了基于纳什谈判法的风-火利益分配方法。算例结果表明,该模式能够增加各方收益、促进风电消纳并提高电网灵活性。文中详细介绍了模型构建、成本计算和博弈均衡的实现过程,并通过Python代码复现了模型,包括参数定义、收益函数、纳什均衡求解、利益分配及可视化分析等功能。 适合人群:电力系统研究人员、能源政策制定者、从事电力市场交易的工程师和分析师。 使用场景及目标:①帮助理解风火打捆参与大用户直购交易的博弈机制;②为电力市场设计提供理论依据和技术支持;③评估不同政策(如可再生能源配额)对电力市场的影响;④通过代码实现和可视化工具辅助教学和研究。 其他说明:该研究不仅提供了理论分析,还通过详细的代码实现和算例验证了模型的有效性,为实际应用提供了参考。此外,论文还探讨了不同场景下的敏感性分析,如证书价格、风电比例等对市场结果的影响,进一步丰富了研究内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值