小编Sof*_*LLC的帖子

IBOutlet未在awakeFromNib中连接

此处链接的示例代码效果很好,允许UIScrollView显示图像,其中包含分页和预览当前图像之前和之后的图像:

我试图将该示例封装在可以重用的单个控件中.所以我创建了一个PagingScrollView:

@interface PagingScrollView : UIView {
    IBOutlet UIScrollView * scrollView;
}

@property (nonatomic,retain) IBOutlet UIScrollView * scrollView;

@end
Run Code Online (Sandbox Code Playgroud)

用泥土简单实施

- (void) awakeFromNib
{
    [super awakeFromNib];

    NSLog(@"awake from nib");
}
Run Code Online (Sandbox Code Playgroud)

在PagingScrollView.xib中,我将包含UIScrollView和ARScrollViewEnhancer的View与原始ScrollViewPagingExampleViewController xib完全相同.其File's Owner的类设置为PagingScrollView,其scrollView插槽设置为子UIScrollView.

在ScrollViewPagingExampleViewController中,我只是声明:

IBOutlet PagingScrollView   *pagingScrollView;
Run Code Online (Sandbox Code Playgroud)

在IB中,我拖动一个View,将其类设置为PagingScrollView,并将其pagingScrollView插座连接到PagingScrollView.

在awakeFromNib中,scrollView属性为nil.我认为既然scrollView在同一个笔尖中连接在IB中,那么它就可以使用了.

令人困惑的是,在ScrollViewPagingExampleViewController.xib中,有一个名为scrollView的空插座.这可能表明PagingScrollView的实例与PagingScrollView.xib中定义的实例不同.

因此,我无法使用实际的子视图填充UIScrollView.我在这做错了什么?

uiscrollview iboutlet ios awakefromnib

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

用于UITextField和UITextView的UITextInput协议用于管理崩溃中的选择结果

UITextField和UITextView都采用UITextInput协议.UITextView的selectedRange属性返回NSRange,其中UITextField没有任何选择属性/方法.我想使用一个例程来管理UITextField或UITextView中的插入.

所以我做了以下事情:

    id<UITextInput> textInput = nil;

    if ([self.aTextView isFirstResponder]) {
        textInput = self.aTextView;
    } else if ([self.aTextField isFirstResponder]) {
        textInput = self.aTextField;
    }

    if (textInput != nil) {
        UITextRange * selectedRange = textInput.selectedTextRange;
        // ...
    }
Run Code Online (Sandbox Code Playgroud)

只是在selectedTextRange属性上立即崩溃"无法识别的选择器发送到实例".

我究竟做错了什么?

[编辑:似乎在iOS 5中工作,但在iOS 4中的设备上崩溃.这是iOS 5中的变化吗?文件说协议是3.2+.]

uitextfield uitextview ios uitextinput

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

背景中的CATransition白色闪光?

我正在尝试从左侧而不是右侧进行pushViewController幻灯片,如下所示:

Page14Controller * controller = [[Page14Controller alloc] initWithNibName:@"Page14Controller" bundle:nil];

CATransition* transition = [CATransition animation];
transition.duration = 0.3;
transition.type = kCATransitionPush;
//                transition.type = kCATransitionMoveIn; 
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
//kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade
transition.subtype = kCATransitionFromLeft; 
//kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom
[self.navigationController.view.layer addAnimation:transition forKey:nil];

[self.navigationController pushViewController:controller animated:NO];
Run Code Online (Sandbox Code Playgroud)

当我这样做时,当前控制器淡化为白色,这看起来很糟糕.为什么会这样?我已经尝试将当前视图的alpha背景设置为0.

iphone uinavigationcontroller pushviewcontroller catransition ios

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