小编Mid*_* MP的帖子

从viewDidLoad调用方法时,CABasicAnimation不起作用

我有一个imageView添加到一个视图,它呈现为modalViewController,风格水平翻转.我添加了以下代码来动画imageView.

- (void)animateTheImageview:(UIImageView*) imageViewToAnimate{
    
    CABasicAnimation *fadeAnimation;
    fadeAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
    fadeAnimation.duration = 1.5;
    fadeAnimation.repeatCount = INFINITY;
    fadeAnimation.autoreverses = NO;
    fadeAnimation.fromValue = [NSNumber numberWithFloat:1.0];
    fadeAnimation.toValue = [NSNumber numberWithFloat:0.5];
    fadeAnimation.removedOnCompletion = YES;
    fadeAnimation.fillMode = kCAFillModeForwards;
    [imageViewToAnimate.layer addAnimation:fadeAnimation forKey:@"animateOpacity"]; 
}


- (void)switchOnorOff
 {
    
    if (onOffSwitch.on)
    {
        
        self.lightImage.image = [UIImage imageNamed:@"CFLGlow.jpg"];
        [self animateTheImageview:self.lightImage];
    }
    else
    {
        
        self.lightImage.image = [UIImage imageNamed:@"CFL-BULB.jpg"];
        [self.lightImage.layer removeAllAnimations];
    }
}
Run Code Online (Sandbox Code Playgroud)

我从以下方法中调用此方法viewDidLoad:

- (void)viewDidLoad
   {
      [self switchOnorOff];
   }
Run Code Online (Sandbox Code Playgroud)

我的问题是上面的代码没有为imageView设置动画.

但是当我尝试下面的代码时,它可以工作:

[self performSelectorOnMainThread:@selector(animateTheImageview:) withObject:self.lightImage waitUntilDone:YES];
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么会出现这个问题?之间有什么区别,

[self performSelectorOnMainThread:@selector(animateTheImageview:) withObject:self.lightImage waitUntilDone:YES]; …

cabasicanimation ios performselector

0
推荐指数
1
解决办法
2902
查看次数

如何在IOS Sdk中获取Google Plus圈子

我正在使用Google Plus集成,我必须获取用户圈.

我正在通过网址:https://www.googleapis.com/plus/v1/people/Your_User_Id/people/visible? key = APP_Key.

我收到的答复如下:

{ error = { code = 403; errors = ( { domain = global; message = Forbidden; reason = forbidden; } ); message = Forbidden; }; }
Run Code Online (Sandbox Code Playgroud)

我对此请求需要什么样的权限?

iphone ipad ios google-plus

0
推荐指数
1
解决办法
1339
查看次数

如何从400中选出一个阵列?

我有一个包含420个NSA阵列文字的文件.每个阵列都有10到200个NSStrings.文件大小为988 KB.

当编译器不进行优化时,它可以构建并运行良好.但是,当我尝试制作存档时,它会挂起"分析86个文件中的86个".我怀疑是因为编译器在优化文件时遇到困难.我将文件分成两部分,它将在大约一个小时的编译后存档.

我将数组放入字典中,然后返回我想要的一个数组.我认为这就是编译器的问题.

-- 420 NSArrays ...
NSArray *foils_easy = [NSArray arrayWithObjects:a_easy, about_easy, ... you_easy, your_easy, nil];

NSArray *keys = @[@"a", @"about", ... @"you", @"your"];

NSDictionary *allFoils = [NSDictionary dictionaryWithObjects:foils_easy forKeys:keys];
return [allFoils objectForKey:target];
Run Code Online (Sandbox Code Playgroud)

我不需要字典,除了确定返回哪个数组.有没有办法构造数组名称,以便可以返回?也许像你这样的东西可以用来在屏幕上放置图像?

NSString *foregroundImageName = [NSString stringWithFormat:@"%@ForegroundL1", scene];
Run Code Online (Sandbox Code Playgroud)

我真的不想投入420'if'语句所以我希望有更好的解决方案.

nsarray ios

0
推荐指数
1
解决办法
82
查看次数

如何在我的程序中正确使用fread()和fwrite()?

/*Write a program that indefinitely takes in files to append to a master
  file. If the file names are the same, don't do it. If there's an error,
  don't do it. Exit with a blank line. Use a custom buffer.*/ 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME 25
#define BUFSIZE 1024
int append(FILE *, FILE *); 

int main(){
    char src[MAX_NAME], mainfile[MAX_NAME]; 
    FILE *src_ptr, *mainfile_ptr; 
    int successes = 0; 

    puts("Enter name of main file"); 
    if(gets(mainfile) == NULL){
        fprintf(stderr, "Error, couldn't …
Run Code Online (Sandbox Code Playgroud)

c io file fwrite fread

0
推荐指数
1
解决办法
2668
查看次数

错误:*在iOS 7项目的NSArray上使用未声明的标识符'firstObject'

UISplitViewController *splitViewController     = (UISplitViewController *)self.window.rootViewController;
NSArray *arrayViewControllers                  = (NSArray *)splitViewController.viewControllers;

ViewController *masterViewController           = (ViewController *) arrayViewControllers[firstObject];
VideoViewController *detailVideoViewController = (VideoViewController *) arrayViewControllers[lastObject];
Run Code Online (Sandbox Code Playgroud)

错误:*使用未声明的标识符'firstObject'

错误:*使用未声明的标识符'lastObject'

什么?

objective-c nsarray ios

0
推荐指数
1
解决办法
230
查看次数

目标C,由于循环依赖性导致的Swift互操作性问题

我正在开发一个几年前在Objective C中完成的iOS项目.所以我要为现有的一个实现一些新功能,所以这次我正在使用Swift来达到这个目的.

我添加了一个新的Swift类:

class CampView: UIView
{
   // Code
}
Run Code Online (Sandbox Code Playgroud)

我想在我现有的Objective C类中访问这个类.所以我喜欢:

@class CampView;
@interface NewCampViewController : UIViewController

@property (nonatomic, strong) IBOutletCollection(CampView) NSArray *campTypes;

@end
Run Code Online (Sandbox Code Playgroud)

但当我将它连接到我的故事板时,它会崩溃并显示一条消息:

由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[setValue:forUndefinedKey:]:此类不是密钥值编码兼容的密钥campTypes.

另外我无法将我的系统生成的Swift头文件导入到这个特定的类中,当我这样做时会抛出如下错误:

找不到'MyApp-Swift.h'文件

这就是我@class CampView;在上面的片段中使用的原因.在调查时我发现我的NewCampViewController.h内容包含在Objective C桥接头中.所以怀疑它是由于循环依赖,但我无法解决它.

有人可以帮我解决这个问题吗?

objective-c circular-dependency ios swift

0
推荐指数
1
解决办法
1080
查看次数

Xcode工具栏中的中心栏按钮

我在位于屏幕底部的工具栏内有两个按钮。我想将这些按钮置于工具栏的中央。我发现的所有内容都集中在导航栏中的居中按钮,我不确定如何解决此问题。我想念什么?

在此处输入图片说明

这是我尝试模仿的用户界面:

在此处输入图片说明

uitoolbar uibarbuttonitem ios

0
推荐指数
1
解决办法
1008
查看次数

设备在后台播放音频,模拟器不播放

问题是这样的:

  • 在设备上运行我的应用程序时,音频在后台播放。
  • 在模拟器上运行我的应用程序时,音频停止在后台播放,并在应用程序再次位于前台时恢复。

我做了以下事情:

  • .plist背景模式是audio.
  • 我在下面调用代码didFinishLaunchingWithOptions

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error];
[[AVAudioSession sharedInstance] setActive:YES error:&error];
Run Code Online (Sandbox Code Playgroud)

我缺少什么?我检查了这error两种nil方法之后。

avfoundation ios ios6

-1
推荐指数
1
解决办法
295
查看次数

使用带有%u和%x的unsigned int时出现意外值

今天我正在开发一个示例iOS应用程序,其中包含以下代码:

unsigned int uCount = 0;
int iJoke = -7;
uCount = uCount + iJoke;
Run Code Online (Sandbox Code Playgroud)

但是当我打印它时:

????????????????????????????????????????????????????????
? Format Specifier ?   Print Statement    ?   Output   ?
????????????????????????????????????????????????????????
? %d               ? NSLog(@"%d",uCount); ? -7         ?
? %u               ? NSLog(@"%u",uCount); ? 4294967289 ?
? %x               ? NSLog(@"%x",uCount); ? fffffff9   ?
????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

我预计%u的输出为7.

然后我用过:

unsigned int i = 0;
int j = -7;
i = i + abs(j);
Run Code Online (Sandbox Code Playgroud)

输出如下:

????????????????????????????????????????????????????
? Format Specifier ?   Print Statement    ? Output ?
????????????????????????????????????????????????????
? %d               ? …
Run Code Online (Sandbox Code Playgroud)

c ios

-3
推荐指数
1
解决办法
213
查看次数

tableview什么都没有?

我的tableview有numberOfRowsInSection returns 10以下方法.我已经完成了一切...... ......以下方法不会被调用....它没有显示......

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

iphone uitableview

-4
推荐指数
1
解决办法
84
查看次数

- [__ NSArrayI length]:无法识别的选择器发送到实例0x7f1e9f90

伙计们,我有一个包含来自webservice的数据的array6 ..输出: - NSLog(@"%@",[array6 description]);

(
        (
        "Thu 8, Jan",
        "Thu 8, Jan"

    )
)
Run Code Online (Sandbox Code Playgroud)

我有一个自定义表视图"availPassengerTableViewCell"..

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableCell";

    availPassengerTableViewCell *cell = (availPassengerTableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"availPassengerTableViewCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }
   cell.phoneLbl.text = [array3 objectAtIndex:indexPath.row]; //here it showing above error..

    return cell;
}
Run Code Online (Sandbox Code Playgroud)

json uitableview ios

-6
推荐指数
1
解决办法
4644
查看次数