ios学习笔记(六)使用UIScrollView嵌套UIView子类

jopen 12年前


      完成这一功能的前提是,你应该先安装好我上一节所说道的window-Based Application模版:

  教程地址:http://www.open-open.com/lib/view/open1341882507072.html

 

接着我们要新建一个window-Based Application 模版

我们创建一个名为HypnosisView的objetctive-C class文件:

HypnosisView.h:

#import       @interface HypnosisView : UIView  {        }    @end


HypnosisView.m:

在这个文件中我们加入了绘制了一个同心圆的图形

#import "HypnosisView.h"      @implementation HypnosisView    - (void)drawRect:(CGRect)rect  {      // 获取绘图区域      CGRect bounds = [self bounds];            // 计算中心点      CGPoint center;      center.x = bounds.origin.x + bounds.size.width / 2.0;      center.y = bounds.origin.y + bounds.size.height / 2.0;            // 计算中心点至边界角的距离      float maxRadius = hypot(bounds.size.width, bounds.size.height) / 2.0;            // 获取绘图所需要的上下文      CGContextRef context = UIGraphicsGetCurrentContext();            // 用10点的宽度来绘制所有的线条      CGContextSetLineWidth(context, 10);            // 线条颜色设为淡灰      [[UIColor lightGrayColor] setStroke];        // 绘制同心圆      for (float currentRadius = maxRadius; currentRadius > 0; currentRadius -= 20)      {          CGContextAddArc(context, center.x, center.y,                           currentRadius, 0.0, M_PI * 2.0, YES);          CGContextStrokePath(context);      }                 NSString *text = @"hi: i am henrymorgen.";            // 获取绘图所需要的字体      UIFont *font = [UIFont boldSystemFontOfSize:28];            // 计算绘图位置      CGRect textRect;      textRect.size = [text sizeWithFont:font];      textRect.origin.x = center.x - textRect.size.width / 2.0;      textRect.origin.y = center.y - textRect.size.height / 2.0;            // 将当前上下文的填充色设为黑色      [[UIColor blackColor] setFill];        [text drawInRect:textRect              withFont:font];  }    @end


接着我们配置代理 AppDelegate.h:

#import       @class HypnosisView;    @interface HypnosisterAppDelegate : NSObject       {            HypnosisView *view;  }    @property (nonatomic, retain) IBOutlet UIWindow *window;    @end

AppDelegate.m:

在代理中我们添加了ScrollView,并将先前的HypnosisView添加到ScrollView中

#import "HypnosisterAppDelegate.h"  #import "HypnosisView.h"    @implementation HypnosisterAppDelegate    @synthesize window=_window;    - (BOOL)application:(UIApplication *)application      didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  {        CGRect wholeWindow = [[self window] bounds];            UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:wholeWindow];      [[self window] addSubview:scrollView];            // 将视图的大小设为窗口的二倍      CGRect reallyBigRect;      reallyBigRect.origin = CGPointZero;      reallyBigRect.size.width = wholeWindow.size.width * 2.0;      reallyBigRect.size.height = wholeWindow.size.height * 2.0;      [scrollView setContentSize:reallyBigRect.size];            // 在UIScrollView对象里居中      CGPoint offset;      offset.x = wholeWindow.size.width * 0.5;      offset.y = wholeWindow.size.height * 0.5;      [scrollView setContentOffset:offset];            // 启用缩放功能      [scrollView setMinimumZoomScale:0.5];      [scrollView setMaximumZoomScale:5];      [scrollView setDelegate:self];            // 创建视图      view = [[HypnosisView alloc] initWithFrame:reallyBigRect];      [view setBackgroundColor:[UIColor clearColor]];      [scrollView addSubview:view];            [scrollView release];                [[UIApplication sharedApplication] setStatusBarHidden:YES                                      withAnimation:UIStatusBarAnimationFade];          [[self window] makeKeyAndVisible];      return YES;  }    - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView  {      return view;  }    - (void)dealloc  {      [view release];      [_window release];      [super dealloc];  }    @end



最后运行一下看下效果:

ios学习笔记(六)使用UIScrollView嵌套UIView子类

转自:http://blog.csdn.net/itachi85/article/details/7726992

</div>