首先创建项目,选择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()是当前开机时间。