代码自定义UIScrollView实现



// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization.
self.title = @"主流公司指数";
mainView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
mainView.delegate = self;

[self.view addSubview:mainView];
UIBarButtonItem *reloadItem = [[UIBarButtonItem alloc] initWithTitle:@"重新加载" style:UIBarButtonItemStylePlain target:self action:@selector(reloadItem_click)];

self.navigationItem.rightBarButtonItem = reloadItem;

/*mainView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, 400)];
mainView.directionalLockEnabled = YES;
mainView.pagingEnabled = YES;
mainView.backgroundColor = [UIColor blueColor];
mainView.showsVerticalScrollIndicator = NO;
mainView.showsHorizontalScrollIndicator = NO;
mainView.delegate = self;

CGSize newSize = CGSizeMake(self.view.frame.size.width * 2, self.view.frame.size.height);
[mainView setContentSize:newSize];

[self.view addSubview:mainView];

pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0.0, 401, self.view.frame.size.width, 80)];
pageControl.hidesForSinglePage = YES;
pageControl.userInteractionEnabled = NO;
pageControl.backgroundColor = [UIColor redColor];
[self.view addSubview:pageControl];

page1=[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.frame.size.width, self.view.frame.size.height)];
page1.backgroundColor=[UIColor redColor];

[mainView addSubview:page1];


page2=[[UIView alloc] initWithFrame:CGRectMake(self.view.frame.size.width, 0.0, self.view.frame.size.width, self.view.frame.size.height)];
page2.backgroundColor=[UIColor blueColor];

[mainView addSubview:page2]; //[mainView setBackgroundColor:[UIColor redColor]];
*/

}
return self;
}


/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {

/*BfViewController *bf = [[BfViewController alloc]init];
[self.view addSubview:bf.view];
[bf setTopicText:@"test"];
[bf setMarkText:@"mark"];
*/
/*[super viewDidLoad];
waitView = [[UIWaitingView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[self.view addSubview:waitView];
[self.view bringSubviewToFront:waitView];
[waitView starActivityLoading];

[waitView setLoadingLabel:@"正在加载数据..."];
*/

//[bf release];
//[bf2 release];
}
- (void)viewDidAppear:(BOOL)animated{
NSLog(@"CompanyController.viewDidAppear");
[super viewDidAppear:animated];
if(companyList==nil){
[[WaitDialog sharedWaitDialog] setLoadingLabel:@"链接网络中.."];
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(fetchData) userInfo:nil repeats:NO];
}
}
-(void)fetchData{
[self removeAllView];
companyList = [JSONParser loadData:@"http://3g.wapzq.com/odds/json/company.jsp" isAllValues:NO valueForKey:@"list"];
//NSLog(@"companyList:%@",arr);
//[waitView endActivityLoading];
//[waitView removeFromSuperview];
//[[WaitDialog sharedWaitDialog]endShowLoading];
[[WaitDialog sharedWaitDialog]setLoadingLabel:@"正在构造界面..."];
[self makeView];
}
-(void)removeAllView{
for(UIView *subView in [mainView subviews]){
[subView removeFromSuperview];
}
}
-(void)makeView{
[[WaitDialog sharedWaitDialog]endShowLoading];

if(companyList==nil||[companyList count]==0){
UILabel *nullData = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, self.view.frame.size.width-20, 40)];
nullData.text = @"暂时没有数据";
nullData.backgroundColor = [UIColor clearColor];
nullData.font = [UIFont systemFontOfSize:20];
[mainView addSubview:nullData];
}else{
int count = [companyList count];
int i = 0;
int x = 10;
int y = 10;
int width = self.view.frame.size.width / 2 - 40;
int height = 30;
int contentHeight = (height+y*2)*count/2;
CGSize newSize = CGSizeMake(self.view.frame.size.width,contentHeight);
[mainView setContentSize:newSize];
for(i = 0; i < count/2; i++){
NSArray *company = [companyList objectAtIndex:i];
// NSLog(@"index %d has %@.",i, [companyList objectAtIndex:i]);
//NSLog(@"company.id:%@,name:%@",[company valueForKey:@"cid"],[company valueForKey:@"name"]);
UIButton *btn = [[UIButton buttonWithType:UIButtonTypeRoundedRect]retain];
btn.frame = CGRectMake(x, y, width, height);
btn.backgroundColor = [UIColor clearColor];
//UIButton*btn=[[UIButton alloc]initWithFrame:CGRectMake(x, y, width, height)];
//btn.backgroundColor = [UIColor colorWithRed:0.52 green:0.09 blue:0.07 alpha:1];
//[btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btn setTitle:[company valueForKey:@"name"] forState:UIControlStateNormal];
//btn.titleLabel.font = [UIFont systemFontOfSize:19];

[btn addTarget:self action:@selector(selectCompany:) forControlEvents:UIControlEventTouchUpInside];
[mainView addSubview:btn];
[btn release];
y+=height+10;


}
x = self.view.frame.size.width /2 +10;
y = 10;
for(i;i<count;i++){
NSArray *company = [companyList objectAtIndex:i];
UIButton *btn = [[UIButton buttonWithType:UIButtonTypeRoundedRect]retain];
btn.frame = CGRectMake(x, y, width, height);
//[btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btn setTitle:[company valueForKey:@"name"] forState:UIControlStateNormal];
//btn.titleLabel.font = [UIFont systemFontOfSize:19];
[btn addTarget:self action:@selector(selectCompany:) forControlEvents:UIControlEventTouchUpInside];
[mainView addSubview:btn];
[btn release];
y+=height+10;

}

}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值