Iphone 静态UILabel未显示在uiview中

Iphone 静态UILabel未显示在uiview中,iphone,xcode,interface-builder,uilabel,Iphone,Xcode,Interface Builder,Uilabel,我已经在Interface Builder中创建了一些静态UILabel文本,但是在运行应用程序时。标签没有显示在应用程序中,我不知道为什么 除标签外的所有其他东西,如文本字段、按钮都不起作用 有人能告诉我出了什么问题吗 这是在IB中 这是应用程序中的 #import "SettingsViewController.h" @implementation SettingsViewController @synthesize drinkLimitText; // Implement view

我已经在Interface Builder中创建了一些静态UILabel文本,但是在运行应用程序时。标签没有显示在应用程序中,我不知道为什么

除标签外的所有其他东西,如文本字段、按钮都不起作用 有人能告诉我出了什么问题吗

这是在IB中

这是应用程序中的

#import "SettingsViewController.h"

@implementation SettingsViewController

@synthesize drinkLimitText;

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {

    appDelegate = (DrinkTabsAndNavAppDelegate *)[[UIApplication sharedApplication] delegate];
    [super viewDidLoad];

    NSLog(@"subView:%d",[self.view.subviews count]);
}


- (void) viewWillAppear:(BOOL)animated {


    if ([appDelegate.drinkLimit floatValue] >= 0) 
        drinkLimitText.text = [NSString stringWithFormat:@"%.0f", [appDelegate.drinkLimit floatValue]];
    else 
        drinkLimitText.text = @"0";

    [super viewWillAppear:animated];
}

- (IBAction)textFieldDoneEditing:(id)sender{ 
    NSDecimalNumber *tempValue = [[NSDecimalNumber alloc] initWithString:drinkLimitText.text];
    if (tempValue == [NSDecimalNumber notANumber] || [tempValue doubleValue] < 0) {
        NSString *msg = [[NSString alloc] initWithFormat: @"Make sure to enter a positive number."]; 
        UIAlertView *alert = [[UIAlertView alloc] 
                              initWithTitle:@"Hang on..." 
                              message:msg 
                              delegate:self 
                              cancelButtonTitle:@"Ok" 
                              otherButtonTitles:nil]; 
        [alert show]; 
        [alert release]; 
        [msg release];
    } else {
        [sender resignFirstResponder];
        [self updateDrinkLimit];
    }
    [tempValue release];
} 

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (void)updateDrinkLimit {

    NSDecimalNumber *newLimit = [[NSDecimalNumber alloc] initWithString:[drinkLimitText text]];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([newLimit floatValue] >= 0) {
        [defaults setFloat:[newLimit floatValue] forKey:kDrinkLimitKey]; 
        appDelegate.drinkLimit = newLimit;
    } else {
        [defaults setFloat:0 forKey:kDrinkLimitKey];
        appDelegate.drinkLimit = 0;
    }
    [newLimit release];
}

- (IBAction)openOntrackWebsite {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.ontrack.org.au/"]];
}

- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    [drinkLimitText release];

    [super dealloc];
}

@end

#导入“setingsviewcontroller.h”
@实现设置可视控制器
@合成drinklimitext;
//实现viewDidLoad以在加载视图(通常从nib)后执行附加设置。
-(无效)viewDidLoad{
appDelegate=(DrinkTabsAndNavAppDelegate*)[[UIApplication sharedApplication]委托];
[超级视图下载];
NSLog(@“子视图:%d”,[self.view.subviews count]);
}
-(无效)视图将显示:(BOOL)动画{
如果([appDelegate.drinkLimit floatValue]>=0)
drinkLimitText.text=[NSString stringWithFormat:@“%.0f”,[appDelegate.drinkLimit floatValue]];
其他的
drinkLimitText.text=@“0”;
[超级视图将显示:动画];
}
-(iAction)textFieldDoneEditing:(id)发件人{
NSDecimalNumber*tempValue=[[NSDecimalNumber alloc]initWithString:drinkLimitText.text];
如果(tempValue==[NSDecimalNumber notANumber]| |[tempValue doubleValue]<0){
NSString*msg=[[NSString alloc]initWithFormat:@“确保输入正数。”];
UIAlertView*警报=[[UIAlertView alloc]
initWithTitle:@“等一下…”
信息:msg
代表:赛尔夫
取消按钮:@“确定”
其他按钮:无];
[警报显示];
[警报发布];
[味精释放];
}否则{
[发送方辞职第一响应方];
[自更新链接限制];
}
[价值释放];
} 
-(无效)未收到记忆警告{
//如果视图没有superview,则释放该视图。
[超级记忆警告];
//释放所有未使用的缓存数据、图像等。
}
-(无效)视图卸载{
//释放主视图的所有保留子视图。
//例如,self.myOutlet=nil;
}
-(无效)UpdatedLink限制{
NSDecimalNumber*newLimit=[[NSDecimalNumber alloc]initWithString:[drinkLimitText text]];
NSUserDefaults*默认值=[NSUserDefaults standardUserDefaults];
如果([newLimit floatValue]>=0){
[默认设置浮点:[newLimit floatValue]forKey:kDrinkLimitKey];
appDelegate.drinkLimit=newLimit;
}否则{
[默认值setFloat:0 forKey:kDrinkLimitKey];
appDelegate.drinkLimit=0;
}
[新限额释放];
}
-(iAction)OpenOnTrack网站{
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@”http://www.ontrack.org.au/"]];
}
-(无效)解除锁定{
[[NSNotificationCenter defaultCenter]移除观察者:self];
[drinkLimitText发布];
[super dealoc];
}
@结束

清理项目并再次构建


这是Xcode最常见的问题之一。

请确保已保存项目。 还要检查您是否已添加代码的子视图。 清洁然后运行。。。 这会解决你的问题


希望对您有所帮助……

您在interface builder中的层次结构应如下所示:

UIView
   --- Label
   --- TextField
   --- Label
   --- UIButton
我怀疑是:

UIView
   --- Label
   --- UIButton
Label
Label 

这是主窗口中的xib示例还是选项卡栏项的ViewController中的示例?另外,您是否记得将视图控制器属性中的NIB名称更改为名称,通常称为SettingsViewController(xib文件的名称),这是使用Xcode创建类时通常生成的名称?在屏幕截图中,显示“从“设置”查看”,这可能不正确。

我的问题是没有正确设置约束。确保设置宽度和高度约束,并通过单击该三角形约束按钮添加任何缺少的约束


修复约束后,它们将显示。

然后检查您是否已在视图中正确添加标签。检查,仍不起作用。只有2个whown与IBOutlet连接,其余的是静态的,选中的颜色不是界面生成器的白色上传屏幕快照,您正在添加标签。不,我没有任何addSubView命令,有趣的是,无论我在视图中添加了什么,除了文本fieldhi macboy之外,什么都没有显示,xib示例来自主窗口,设置是我为类settingViewController重命名的名称