gpt4 book ai didi

ios - UIStepper 问题 : decrements but won't increment

转载 作者:行者123 更新时间:2023-12-01 16:45:40 27 4
gpt4 key购买 nike

我对 UIStepper 有一个奇怪的问题(它伴随着 UITextField)
考虑这个代码片段:

@interface LTRPageTracker : UIView <UITextFieldDelegate>
{
UIStepper* page_move;
UITextField* page_no_view;
}
-(void) nextOrPrevPage:(id)sender forEvent:(UIControlEvents) event;

@implementation LTRPageTracker

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
CGRect stepperFrame, pageNoframe;
pageNoframe.origin = frame.origin;
pageNoframe.size.height = frame.size.height;
pageNoframe.size.width = frame.size.width/2;
stepperFrame.origin.x = pageNoframe.origin.x + pageNoframe.size.width +1;
stepperFrame.origin.y = frame.origin.y;
stepperFrame.size = pageNoframe.size;

page_move = [[UIStepper alloc] initWithFrame:stepperFrame];
[page_move setMinimumValue:0];
[page_move setValue:7];
page_move.maximumValue =1000;
[page_move addTarget:self action:@selector(nextOrPrevPage:forEvent:) forControlEvents:UIControlEventValueChanged];

page_no_view = [[UITextField alloc] initWithFrame:pageNoframe];
page_no_view.delegate = self;
page_no_view.backgroundColor = [UIColor redColor];
[self addSubview:page_no_view];
[self addSubview:page_move];
[page_move sendActionsForControlEvents:UIControlEventValueChanged];
[page_move setEnabled:YES];
}
return self;
}

-(void) nextOrPrevPage:(id) sender forEvent:(UIControlEvents) event {
//assert(sender == page_move);
NSLog(@"Event is %x", event);
page_no_view.text = [[NSNumber numberWithDouble: page_move.value] stringValue];
}

我已将此 View 添加到导航栏。
而且我可以减少 UIStepper 的值,但不增加它(事件根本不会因为增加而被触发,而是会减少)。
为什么?
使用 iOS 7,在模拟器上运行。

最佳答案

每当您遇到 UI 元素没有响应的问题时,您应该检查的第一件事是它(或其中的一部分)是否超出其父 View 的范围(超出范围的部分不会响应)。一个简单的方法是给 superview 一个背景颜色。在 init 方法中为 self 分配一个背景颜色,然后看看它会显示什么。我打赌您会看到步进器的右侧不在其 super View 内,因此您需要放大该 View ,或更改步进器在该 View 中的位置。

如果您将 View 的框架设置为 150x30,并在 View 的 init 方法中更改这两行,我认为对于 1000 大的数字应该可以正常工作:

    pageNoframe.size.width = frame.size.width/4; // changed 2 to 4
stepperFrame.origin.x = pageNoframe.origin.x + pageNoframe.size.width+20; // changed 1 to 20

关于ios - UIStepper 问题 : decrements but won't increment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20172067/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com