`
ext
  • 浏览: 3183 次
  • 性别: Icon_minigender_1
  • 来自: 吐鲁番
社区版块
存档分类
最新评论
阅读更多
1在Xcode中,单击运行“>控制台看到NSLog
NSLog(@"log: %@ ", myString);
NSLog(@"log: %f ", myFloat);
NSLog(@"log: %i ", myInt);

2:显示在屏幕上任何地方的形象,不使用界面生成器。 .您可以使用其他类型的意见这一点。
CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
[myImage setImage:[UIImage imageNamed:@"myImage.png"]];
myImage.opaque = YES; // explicitly opaque for performance 不透明
[self.view addSubview:myImage];
[myImage release];

Application Frame
Use "bounds" instead of "applicationFrame" -- the latter will introduce a 20 pixel empty status bar (unless you want that..)


4:一个基本的UIWebView。
CGRect webFrame = CGRectMake(0.0, 0.0, 320.0, 460.0);
UIWebView *webView = [[UIWebView alloc] initWithFrame:webFrame];
[webView setBackgroundColor:[UIColor whiteColor]];
NSString *urlAddress = @"http://www.google.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
[self addSubview:webView];
[webView release];

5 旋转图标上游的iPhone状态栏中显示左侧显示有背景的网络活动正在进行。
UIApplication* app = [UIApplication sharedApplication];
app.networkActivityIndicatorVisible = YES; // to stop it, set this to NO

6:显示了一系列连续的图像
NSArray *myImages = [NSArray arrayWithObjects:
    [UIImage imageNamed:@"myImage1.png"],
    [UIImage imageNamed:@"myImage2.png"],
    [UIImage imageNamed:@"myImage3.png"],
    [UIImage imageNamed:@"myImage4.gif"],
    nil];

UIImageView *myAnimatedView = [UIImageView alloc];
[myAnimatedView initWithFrame:[self bounds]];
myAnimatedView.animationImages = myImages;
myAnimatedView.animationDuration = 0.25; // seconds
myAnimatedView.animationRepeatCount = 0; // 0 = loops forever 永远循环
[myAnimatedView startAnimating];
[self addSubview:myAnimatedView];
[myAnimatedView release];   

7 Show something moving across the screen. Note: this type of animation is "fire and forget" -- you cannot obtain any information about the objects during animation (such as current position). If you need this information, you will want to animate manually using a Timer and adjusting the x&y coordinates as necessary.
显示的东西在屏幕上移动。注:此动画的类型是“射后不理” -你不能得到任何关于在动画(如目前的位置)的对象的信息。 如果您需要此信息,你将要动画手动使用定时器和调整X和Y坐标必要的。
CABasicAnimation *theAnimation;   
theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
theAnimation.duration=1;
theAnimation.repeatCount=2;
theAnimation.autoreverses=YES;
theAnimation.fromValue=[NSNumber numberWithFloat:0];
theAnimation.toValue=[NSNumber numberWithFloat:-60];
[view.layer addAnimation:theAnimation forKey:@"animateLayer"];

8The following example displays an integer's value as a text label:
下面的示例显示文本标签作为一个整数的值:
currentScoreLabel.text = [NSString stringWithFormat:@"%d", currentScore];

9:Here's how to create a simple draggable image. 以下说明如何创建一个简单的拖动图像。
1. 1。 Create a new class that inherits from UIImageView创建一个新类继承的UIImageView
@interface myDraggableImage : UIImageView {
}
2.  In the implementation for this new class, add the 2 methods:在这个新类的实现,添加两种方法:
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
   
    // Retrieve the touch point
    CGPoint pt = [[touches anyObject] locationInView:self];
    startLocation = pt;
    [[self superview] bringSubviewToFront:self];
   
}
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
   
    // Move relative to the original touch point
    CGPoint pt = [[touches anyObject] locationInView:self];
    CGRect frame = [self frame];
    frame.origin.x += pt.x - startLocation.x;
    frame.origin.y += pt.y - startLocation.y;
    [self setFrame:frame];
}
3:Now instantiate the new class as you would any other new image and add it to your view
现在,新的类实例作为对其他任何新的形象并将其添加到您的看法
dragger = [[myDraggableImage alloc] initWithFrame:myDragRect];
[dragger setImage:[UIImage imageNamed:@"myImage.png"]];
[dragger setUserInteractionEnabled:YES];

9 Here is how to make the phone vibrate (Note: Vibration does not work in the Simulator, it only works on the device.)  下面是如何使手机震动(注:振动不起作用的模拟器,它只能。在设备上)
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
           
声音将在模拟器,但是有些声音(如循环)一直为不工作,甚至在完全模拟视音频格式的报告。 Note there are specific filetypes that must be used (.wav in this example).请注意有必须使用(在本例的。wav特定文件)。
SystemSoundID pmph;
id sndpath = [[NSBundle mainBundle]
    pathForResource:@"mySound"
    ofType:@"wav"
    inDirectory:@"/"];
CFURLRef baseURL = (CFURLRef) [[NSURL alloc] initFileURLWithPath:sndpath];
AudioServicesCreateSystemSoundID (baseURL, &pmph);
AudioServicesPlaySystemSound(pmph);   
[baseURL release];

线程
1. 1。 Create the new thread:创建新线程:
[NSThread detachNewThreadSelector:@selector(myMethod)
        toTarget:self
        withObject:nil];
。 Create the method that is called by the new thread:这是创建新的线程调用的方法:
- (void)myMethod {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
                   
    *** code that should be run in the new thread goes here ***
                  
    [pool release];
}
What if you need to do something to the main thread from inside your new thread (for example, show a loading symbol)? Use performSelectorOnMainThread.
如果你需要做的一件事,在你的新线程主线程(例如,显示出装载的象征)? Use performSelectorOnMainThread .使用performSelectorOnMainThread。
[self performSelectorOnMainThread:@selector(myMethod)
    withObject:nil
    waitUntilDone:false];


访问属性/方法在其他类别
One way to do this is via the AppDelegate:一种方法是通过AppDelegate:

myAppDelegate *appDelegate
    = (myAppDelegate *)[[UIApplication sharedApplication] delegate];
[[[appDelegate rootViewController] flipsideViewController] myMethod];


随机数
Use arc4random() .使用arc4random()。 There is also random() , but you must seed it manually, so arc4random() is preferred.还有随机(),但你必须手工种子,所以arc4random()是首选。

Timers定时器
This timer will call myMethod every 1 second.此计时器会调用的MyMethod每隔1秒。
[NSTimer scheduledTimerWithTimeInterval:1
    target:self
    selector:@selector(myMethod)
    userInfo:nil
    repeats:YES];


如果你需要传递一个对象的MyMethod? Use the "userInfo" property.使用“用户信息”属性。
1. 1。 First create the Timer首先创建定时器
[NSTimer scheduledTimerWithTimeInterval:1
    target:self
    selector:@selector(myMethod)
    userInfo:myObject
    repeats:YES];
Then pass the NSTimer object to your method:然后通过NSTimer对象的方法
-(void)myMethod:(NSTimer*)timer {

    // Now I can access all the properties and methods of myObject
    [[timer userInfo] myObjectMethod];
}
To stop a timer, use "invalidate": 要停止计时器,使用“无效”:
[myTimer invalidate];
myTimer = nil; // ensures we never invalidate an already invalid Timer

Calculate the passage of time by using CFAbsoluteTimeGetCurrent().
计算使用时间的推移CFAbsoluteTimeGetCurrent()。

CFAbsoluteTime myCurrentTime = CFAbsoluteTimeGetCurrent();
// perform calculations here ()/ /这里进行计算


Application-specific plist files can be stored in the Resources folder of the app bundle. When the app first launches, it should check if there is an existing plist in the user's Documents folder, and if not it should copy the plist from the app bundle.
特定应用的plist文件可以存储在应用程序包资源文件夹。 When the app first launches, it should check if there is an existing plist in the user's Documents folder, and if not it should copy the plist from the app bundle.当应用程序第一次启动后,它应检查是否有一个用户的文件夹中现有的plist,如果没有它应该复制应用程序捆绑plist。

// Look in Documents for an existing plist file
NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
myPlistPath = [documentsDirectory stringByAppendingPathComponent:
    [NSString stringWithFormat: @"%@.plist", plistName] ];
[myPlistPath retain];

// If it's not there, copy it from the bundle
NSFileManager *fileManger = [NSFileManager defaultManager];
if ( ![fileManger fileExistsAtPath:myPlistPath] ) {
    NSString *pathToSettingsInBundle = [[NSBundle mainBundle]
        pathForResource:plistName ofType:@"plist"];
}   
Now read the plist file from Documents
现在,从文件读取plist文件
NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPath = [paths objectAtIndex:0];
NSString *path = [documentsDirectoryPath
    stringByAppendingPathComponent:@"myApp.plist"];
NSMutableDictionary *plist = [NSDictionary dictionaryWithContentsOfFile: path];

Now read and set key/values
在,读取和设置键/值
myKey = (int)[[plist valueForKey:@"myKey"] intValue];
myKey2 = (bool)[[plist valueForKey:@"myKey2"] boolValue];

[plist setValue:myKey forKey:@"myKey"];
[plist writeToFile:path atomically:YES];

Increase the touchable area on the Info button, so it's easier to press.
增加对信息按钮可触的地区,因此更容易按。

CGRect newInfoButtonRect = CGRectMake(infoButton.frame.origin.x-25,
    infoButton.frame.origin.y-25, infoButton.frame.size.width+50,
    infoButton.frame.size.height+50);
[infoButton setFrame:newInfoButtonRect];

Detecting Subviews
检测子视图
You can loop through subviews of an existing view.您可以遍历现有的视图子视图。 This works especially well if you use the "tag" property on your views.这个效果特别好,如果您使用“标签”您的看法财产。
for (UIImageView *anImage in [self.view subviews]) {
    if (anImage.tag == 1) {
        // do something
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics