相关疑难解决方法(0)

不调用preferredStatusBarStyle

我跟着这个线程来覆盖-preferredStatusBarStyle,但它没有被调用.我可以更改任何选项以启用它吗?(我在我的项目中使用XIB.)

uikit ios uistatusbar ios7

250
推荐指数
13
解决办法
12万
查看次数

XCode6大小类中的自定义字体大小调整与自定义字体无法正常工作

Xcode 6有一个新功能,可以在故事板中根据当前设备配置的大小类自动设置UILabel,UITextField和UIButton中的字体和字体大小.例如,您可以将UILabel设置为在"任何宽度,紧凑高度"(例如在横向上的iPhone上)配置上使用字体大小12,在"常规宽度,常规高度"配置(例如在iPad上)上使用大小18.更多信息请点击这里:

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/Size-ClassSpecificLayout.html

这在理论上是一个非常好的功能,因为它可以使得不必根据设备配置以编程方式在UI功能上设置不同的字体.现在,我有一些条件代码根据设备类型设置字体,但显然这意味着我必须在整个应用程序的各个地方以编程方式设置字体.所以我最初对此功能感到非常兴奋,但我发现它在实际使用中存在严重问题(可能是一个bug).请注意,我正在构建针对SDK 8并设置iOS 8的最低部署目标,因此这与与旧版iOS的兼容性无关.

问题是:如果我为不同的大小类设置不同的字体大小,并使用iOS提供的"系统"字体,一切都按预期工作,字体大小根据大小类更改.如果我使用我的应用程序提供的自定义字体(是的,我在应用程序包中正确设置,因为它以编程方式工作)并将自定义字体设置为XCode 6故事板中的标签,这也可以按预期工作.但是当我尝试为不同大小的类使用不同大小的自定义字体时,在故事板中,它突然不起作用.配置的唯一区别是我选择的字体(自定义字体与系统字体).相反,所有字体都显示在设备和模拟器上作为默认大小的默认系统字体,无论大小等级(我通过调试器验证它是用系统字体替换故事板中指定的实际字体) .所以基本上,自定义字体的大小类功能似乎已被破坏.另外,有趣的是,自定义字体实际上在视图控制器的XCode 6"预览"窗格中正确显示和调整大小:只有在实际的iOS系统上运行它才停止工作(这让我觉得我正在配置它正确).

我尝试了多种不同的自定义字体,它似乎不适用于任何一种,但如果我使用"系统",它总是有效.

无论如何,还有其他人在Xcode 6中看到过这个问题吗?关于这是否是iOS 8,Xcode中的错误或者我做错了什么的任何想法?我发现,我发现的唯一解决方法是继续以编程方式设置字体,就像我已经为大约3个版本的iOS一样,因为这确实有效.但我希望能够使用此功能,如果我可以使用自定义字体.我们的设计不接受使用System字体.


附加信息:从Xcode 8.0开始,修复了错误.

interface-builder ios xcode6 ios8 size-classes

103
推荐指数
5
解决办法
2万
查看次数

抑制警告"类别正在实施一种方法,该方法也将由其主要类实现"

我想知道如何压制警告:

类别正在实施一种方法,该方法也将由其主要类实现.

我有一个特定的代码类别:

+ (UIFont *)systemFontOfSize:(CGFloat)fontSize {
    return [self aCustomFontOfSize:fontSize];
}
Run Code Online (Sandbox Code Playgroud)

objective-c clang

97
推荐指数
5
解决办法
4万
查看次数

Objective-C中究竟是什么叫做"类群"?

我在读NSArray就是这样的事情.听起来很沉重.我在桌面上有7本非常胖的书,关于Objective-C,Cocoa和C.他们都没有提到Class Cluster,至少我在书的后面的索引中找不到它.那是什么?

cocoa objective-c cocoa-design-patterns class-cluster

89
推荐指数
5
解决办法
3万
查看次数

自定义UINavigationBar背景

我一直在尝试为整个NavigationBar(不仅仅是titleView)设置自定义背景,但一直在努力.

我找到了这个帖子

http://discussions.apple.com/thread.jspa?threadID=1649012&tstart=0

但我不确定如何实现给出的代码片段.代码是作为新类实现的吗?另外我在哪里实例化,UINavigationController因为我有一个使用NavigationView模板构建的应用程序,所以它不是在我的根控制器中根据示例完成的

iphone objective-c

50
推荐指数
5
解决办法
5万
查看次数

模态对话框不会关闭键盘

我遇到了一个问题,即离开时,键盘不会被解雇UITextFieldUITextViewUIModalPresentationFormSheet.另外,我创建了一个大按钮作为视图的背景,因此如果用户点击字段之外它会被触发.我在常规视图控制器中使用相同的代码,它按预期工作.在模态视图控制器中它什么都不做.任何建议,将不胜感激.

- (BOOL)textFieldShouldReturn:(id)sender {  
 [titleTextField resignFirstResponder];
 return YES;
}

- (BOOL)textViewShouldReturn:(id)sender {  
 [synopsisTextView resignFirstResponder];
 return YES;
}

- (IBAction)textFieldDoneEditing:(id)sender {  
 [sender resignFirstResponder];
} 

- (IBAction)textViewDoneEditing:(id)sender {  
 [sender resignFirstResponder];
} 

- (IBAction)backgroundClick:(id)sender {  
 [titleTextField resignFirstResponder];
 [synopsisTextView resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)

ipad uimodalpresentationformsh ios

41
推荐指数
2
解决办法
2万
查看次数

如何检测UITableView中某个单元格的双击?

如何在某个单元格中检测到双击UITableView

如果用户进行一次触摸,我想执行一个动作,如果用户进行了双重触摸,我想执行另一个动作?我还需要知道触摸的索引路径.

我怎样才能实现这个目标?

谢谢.

iphone cocoa-touch uitableview

34
推荐指数
6
解决办法
2万
查看次数

shouldAutorotateToInterfaceOrientation在iOS 6中不起作用

In iOS 6 shouldAutorotateToInterfaceOrientation没有用,但它在iOS 5.0或中工作正常5.1.

我应该需要改变什么iOS 6.这是我的代码

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if([[[SampleApplicationAppDelegate instance].callInfoDictionary valueForKey:IS_CHAT] isEqualToString:NO_RESPONSE])
{
    int nAngle = 0;
    BOOL bRet = NO;

    switch (interfaceOrientation) {
        case UIInterfaceOrientationPortrait:
            nAngle = 90;
            bRet = YES;
            NSLog(@".......Preview = %f %f",_previewCamera.frame.size.width,_previewCamera.frame.size.height);

            _previewCamera.transform = CGAffineTransformMakeRotation(M_PI*1.5);

            NSLog(@"Preview = %f %f",_previewCamera.frame.size.width,_previewCamera.frame.size.height);
            break;

        case UIInterfaceOrientationPortraitUpsideDown:
            nAngle = 270;
            bRet = YES;
            _previewCamera.transform = CGAffineTransformMakeRotation(M_PI_2);
            break;

        case UIInterfaceOrientationLandscapeLeft:
            nAngle = 0;
            bRet = YES;
            //_previewCamera.transform = CGAffineTransformMakeRotation(M_PI*1.5);
            break;

        case UIInterfaceOrientationLandscapeRight:
            nAngle …
Run Code Online (Sandbox Code Playgroud)

xcode orientation screen-orientation ios6

29
推荐指数
2
解决办法
4万
查看次数

方法在iPhone设备上Swizzle

我尝试了JRSwizzle和MethodSwizzle.他们在模拟器上编译得很好,但是当我尝试编译Device(3.x)时会抛出一堆错误

有没有人在iPhone上乱跑?什么诀窍?

TIA

iphone objective-c swizzling

25
推荐指数
1
解决办法
2万
查看次数

通过类别覆盖Objective c中的方法

以下是在目标c中工作:

// Base Class in ClassA.h and ClassA.m
@interface ClassA : NSObject 
- (NSString *) myMethod;
@end
@implementation ClassA
- (NSString*) myMethod { return @"A"; }
@end

//Category in ClassA+CategoryB.h and ClassA+CategoryB.m
@interface ClassA (CategoryB) 
- (NSString *) myMethod;
@end
@implementation ClassA (CategoryB)
- (NSString*) myMethod { return @"B"; }
@end
Run Code Online (Sandbox Code Playgroud)

问题是,如果我只是导入ClassA.h并发送消息

[myClassA myMethod]; //returns B
Run Code Online (Sandbox Code Playgroud)

这为什么会回归B?我没有导入ClassA + CategoryB

即便如此,如果我做了以下事情:

// Base Class in ClassA.h and ClassA.m
@interface ClassA : NSObject 
- (NSString *) myMethod;
- (NSString *) …
Run Code Online (Sandbox Code Playgroud)

objective-c categories ios

20
推荐指数
2
解决办法
2万
查看次数