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;
#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;