首先创建项目,选择Application ,在右侧窗口中选择Singe View Application。
项目名字为UIScrollView。
如下图:
然后在UIScrollViewViewController.h中添加如下代码#import <UIKit/UIKit.h> @interface UIScrollViewViewController : UIViewController name="code" ><UIScrollViewDelegate,UIScrollViewAccessibilityDelegate> @property(nonatomic,retain) IBOutlet UIScrollView *scrollView1; @property(nonatomic,retain) IBOutlet UIScrollView *scrollView2; -(void)layoutScrollImages; @end
从SDK中拖中两个UIScrollView出来,一个放在上面(上面较大些),一个放在下面;
然后在上面个UIScrollView中按住鼠标右键拖到File's Owner 中,然后选择delegare;下面的一样;
然后从File's Owner按住鼠标右键拖到上面与下面的UIScrollView选择scrollView1与scrollView2。
如下图:
#import "UIScrollViewViewController.h" @interface UIScrollViewViewController () @end @implementation UIScrollViewViewController @synthesize scorllView1; @synthesize scorllView2; const CGFloat kScrollObjheight = 200; const CGFloat kScrollObjWidth = 320; const NSUInteger kNumImages = 6; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor]; //设置背景颜色 NSUInteger i; //申明整型,当前图片序号 for (i = 1; i <= kNumImages; i++) { NSString *imageName = [NSString stringWithFormat:@"image0%d.gif",i]; UIImage *image = [UIImage imageNamed:imageName]; //获取图片 UIImageView *imageView = [[UIImageView alloc] initWithImage:image];//图片显示 CGRect rect = imageView.frame; //获取图片的框架,得到长、宽 rect.size.height = kScrollObjheight;//设置高度 rect.size.width = kScrollObjWidth;//设置宽度 //赋值 imageView.frame = rect; imageView.tag = i; //ScrollView添加子视图 [scorllView1 addSubview:imageView]; } [self layoutScrollImages]; //设置是否裁剪,YES表示裁剪掉 scorllView2.clipsToBounds = YES; //设置滚动条样式 scorllView2.indicatorStyle = UIScrollViewIndicatorStyleWhite; //获取图片,选择一张比较大的 UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image01.gif"]]; //添加图片进入ScrollView [scorllView2 addSubview:imageView]; //设置ScrollView的大小,这里设置为大小,实现图片在ScrollView [scorllView2 setContentSize:CGSizeMake (imageView.frame.size.width, imageView.frame.size.height)]; //设置是否滚动 [scorllView2 setScrollEnabled:YES]; } -(void)layoutScrollImages { //申明一个图片显示 UIImageView *view =nil; //子视图数组 NSArray *subviews = [scorllView1 subviews]; //初始化横坐标 CGFloat curXLoc = 0; //foreach循环 for (view in subviews) { //判定图片是否存在以及是否在范围内 if ([view isKindOfClass:[UIImageView class]] && view.tag > 0) { //获取框架高宽及原点 CGRect frame = view.frame; //修改原点左边 frame.origin = CGPointMake(curXLoc, 0); //修改后的坐标赋值 view.frame=frame; //每次执行后,都增加一个宽度 curXLoc += (kScrollObjWidth); } } //设置ScrollView的长度和宽度 [scorllView1 setContentSize:CGSizeMake((kNumImages *kScrollObjWidth), [scorllView1 bounds].size.height)]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
最终运行结果:
最近公司项目要求,要在android系统的电视机机顶盒之上开发一款天气预报小软件,显示在luncher上,显示当前用户所在城市的天气状况。在开发过程中,遇到了一个问题,就是怎样通过用户的IP地址来给用户定位?我试了很多次,如果用户用的是有线接入网络,那就比较方便,通过搜狐的IP查询接口(http://pv.sohu.com/cityjson)就可以得到IP的归宿地,如果用户用的是wifi接入的网络的话,就比较麻烦了,查阅了很多资料,依然无解! 这个机顶盒没有GPS,所以想通过GPS来定位是不可能的,唯一的办法就是通过IP来给用户定位,思考了很多天,没有答案啊!
这里先提供3个天气查询的接口,都是中央气象局的数据。
城市的天气:http://www.weather.com.cn/data/cityinfo/101270101.html
未来6天的天气:http://m.weather.com.cn/data/101270101.html
适时天气 :http://www.weather.com.cn/data/sk/101270101.html
后面这个” 101270101”,代表成都。每个城市都有不同的编号,这个编号中央气象局有提供,可以去查。
查IP和归宿地(搜狐的接口):http://pv.sohu.com/cityjson ,通过有线上网的话,查询的结果是正确的,但是用无线上网就不正确了!
我在手机上用了百度地图或是谷歌地图,它们都是通过GPS获取经纬度来定位的,但是这个机顶盒上没得GPS这个功能,只能通过IP。
我的想法是,先创建一个存储了城市名称和城市编号的XML文件或者是数据库,然后查询IP以得到IP所属的城市,然后通过查XML文件或数据库来得到城市编号,通过中央气象局的接口去获取天气。现在主要的问题就是,当用户是用wifi上网的时候,怎样查询IP的归属地?就这个问题,也不是精确到某个县城,就精确到市级城市就可以,这肯定是一个难题,我看墨迹天气也没有解决这个问题。敢问各位高人,多多指教啊。。。。
通过wifi热点定位,居藏商机!
函数原型:
public boolean sendMessageAtTime (Message msg, long uptimeMillis)
Message //不用说 是待发送消息
uptimeMillis //sendMessageAtTime,即在确定的时间发送这个消息,这个时间通过这个参数指定
这个时间由uptimeMillis()传递
这两句是等效的,都是延时1秒将消息加入列队
msgHandle.sendMessageAtTime(msg, SystemClock.uptimeMillis()+1000);
msgHandle.sendMessageDelayed(msg, 1000)
sendMessageAtTime的uptimeMillis是相对系统开机时间的绝对时间,SystemClock.uptimeMillis()是当前开机时间。