我有两个UIButtons我正在以编程方式创建并设置目标.如果我将这些按钮添加到主视图中,一切都可以很好地工作.但是,当我首先添加到子视图并将此子视图添加到主视图时,触摸事件不起作用.我猜这些按钮被掩盖了.
如何在将这些按钮保留在子视图中的同时将其打开?
这是我的代码:
// Create button panel here
UIImage *buttonPanel = [UIImage imageNamed:@"left_button_background"];
UIImageView *buttonPanelView = [[UIImageView alloc] initWithImage:buttonPanel];
[buttonPanelView setFrame:CGRectMake(20, 186, 363, 345)];
// Populate the panel with buttons
UIButton *cmsButton = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 351, 142)];
[cmsButton setImage:[UIImage imageNamed:@"BTN_MATLIB"] forState:UIControlStateNormal];
[cmsButton addTarget:self action:@selector(loadCMS) forControlEvents:UIControlEventTouchDown];
[buttonPanelView addSubview:cmsButton];
[self setCms:cmsButton];
UIButton *calcButton = [[UIButton alloc] initWithFrame:CGRectMake(10, 196, 351, 142)];
[calcButton setImage:[UIImage imageNamed:@"BTN_MORE_RESOURCES"] forState:UIControlStateNormal];
[calcButton addTarget:self action:@selector(loadCalc) forControlEvents:UIControlEventTouchDown];
[buttonPanelView addSubview:calcButton];
[self setCalc:calc];
[[self view] addSubview:buttonPanelView];
Run Code Online (Sandbox Code Playgroud) 假设我有一个带有导航控制器和几个视图控制器的故事板。
一切都很好,直到我尝试添加一个新的视图控制器并希望将它与现有的UINavigationController. 当我转到 Editor>Embed>Navigation Controller 时,Xcode 会帮助创建一个新控制器,这正是我不想要的。当我尝试拖动以创建线框时,我创建了一个 segue 关系,这也是我不想要的。
有没有办法让新的视图控制器与现有的导航控制器一起玩?
我正在尝试构建一个循环遍历一列单元格的宏,并用该国家/地区的名称替换该单元格中的双字母国家/地区代码.但是,当我尝试运行宏时,我得到一个找不到对象的错误.
Sub ChangeCountryText()
'
' ChangeCountryText Macro
' Changes country codes
'
For counter = 2 To 20
Set curCell = ActiveSheet.Cells(counter, 1)
Select Case curCell.Text
Case "JP"
curCell.Text = "Japan"
Case "FR"
curCell.Text = "France"
Case "IT"
curCell.Text = "Italy"
Case "US"
curCell.Text = "United States"
Case "NL"
curCell.Text = "Netherlands"
Case "CH"
curCell.Text = "Switzerland"
Case "CA"
curCell.Text = "Canada"
Case "CN"
curCell.Text = "China"
Case "IN"
curCell.Text = "India"
Case "SG"
curCell.Text = "Singapore"
End Select
Next …Run Code Online (Sandbox Code Playgroud) 我想迭代一个整数的NSArray并将每一个与特定的int进行比较.所有整数都是C类型的整数.
我使用的代码如下:
-(int)ladderCalc: (NSArray*)amounts: (int)amount
{
int result;
for (NSUInteger i=0; i< [amounts count]; i++)
{
if (amount < [amounts objectAtIndex:i]);
{
// do something
}
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在将int amount与结果进行比较时出现错误,[amounts objectAtIndex:i]因为您无法将id与int进行比较.为什么这个案件涉及id?不应该objectAtIndex只是在指定的索引处返回对象吗?是否可以将返回的对象强制转换为C int然后进行比较?
或者我应该免除NSArray并在C中做这种类型的事情?
假设我有一个叫做的课TrafficLight,我想有一个属性currentColor.我知道可以创建一个枚举来表示固定选择池中的当前颜色,如下所示:
enum currentColor { CurrentlyRed = 0, CurrentlyYellow = 1, CurrentlyGreen = 2 };
但现在我如何将它变成Cocoa类中的ivar?如果我将它作为属性,通常使用的属性属性是什么?枚举定义是否属于实现范围?它是否属于任何特定方法?(比如init?)
假设我有一个Post模型,我想在保存时运行一个方法
在post.rb我这样做:
:before_save some_method_on_post
def some_method_on_post
# Do something here
end
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何在方法中引用当前实例化的Post对象?
编辑:所以澄清假设我想这样做:
def some_method_on_post
post.some_property = foo
end
Run Code Online (Sandbox Code Playgroud)
我是指post自己吗?
假设我有一个Foo带布尔属性的对象isLegit,如何编写NSPredicate以过滤掉该属性设置的对象NO?
我正在使用CAGradientLayer创建一个背景图层,如本问题的答案中所述:UIView和UILabels上的渐变在iPhone上
但是,当我使用此代码时,我得到一个exc_bad_access错误,引用了CGColorSpaceGetModel.
UILabel *headerText = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width -10, 18)];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.bounds = headerText.bounds;
UIColor *topColor = [[UIColor alloc] initWithRed:0.5647 green:0.6235 blue:0.6667 alpha:1.0];
UIColor *bottomColor = [[UIColor alloc] initWithRed:0.7216 green:0.7569 blue:0.7843 alpha:1.0];
NSArray *gradientColors = [[NSArray alloc] initWithObjects:topColor, bottomColor, nil];
gradient.colors = gradientColors;
[headerText.layer insertSublayer:gradient atIndex:0];
Run Code Online (Sandbox Code Playgroud)
知道什么可能导致这个错误?
假设我有以下预处理器定义
#define MYNUMBER 10f;
我想在我的代码中使用它如下:
float someResult = MYNUMBER * 3;
Run Code Online (Sandbox Code Playgroud)
当我这样做时,Xcode认为我试图*用作一元指针标记而不是乘法符号,并导致错误.定义这样一个常量并在乘法表达式中使用它的正确方法是什么?
我试图在NSValue/ NSConcreteValueinstance中提取一个int .我试着以这种方式施放它们,但它不起作用:
NSValue *toValue = (NSValue *)someValue;
NSNumber *toNumber = (NSNumber*)toValue;
int final = [toNumber intValue];
Run Code Online (Sandbox Code Playgroud)
我也试过用,getValue但这对我也没用.
我有一个UIToolbar包含UITextField内部的实例.我想将工具栏设置为UITextField它包含的附件视图.
我这样做的方式如下:
[myTextView setInputAccessoryView:myToolbar];
Run Code Online (Sandbox Code Playgroud)
当我编译并运行代码时,当我按下文本字段时,整个键盘都会消失.我特别确定我设定的inputAccessoryView而不是inputView.似乎整个输入视图都被替换了,没有任何明确的指示.
有谁知道解决这个问题的方法?
我有一个功能分支和一个主分支.我的功能分支已从主分支中检出,但在当前主分支上的某些提交之前.
我想在主分支上重新提交我的提交,但我不希望主人的历史发生变化,我希望rebase一举应用所有提交并保持repo历史的完整性远程分支.
这可能与git rebase有关吗?
在主人身上这样做
git rebase feature-branch-name
重播我的功能分支上的主人历史,这不是我的意图.
ios ×8
objective-c ×5
ios5 ×3
cocoa-touch ×2
c ×1
cocoa ×1
core-data ×1
enums ×1
excel ×1
excel-2010 ×1
excel-vba ×1
git ×1
git-rebase ×1
instance ×1
llvm ×1
llvm-clang ×1
methods ×1
model ×1
nsarray ×1
nspredicate ×1
nsvalue ×1
rebase ×1
ruby ×1
storyboard ×1
touch ×1
uibutton ×1
uikeyboard ×1
uikit ×1
uistoryboard ×1
uitextfield ×1
uiview ×1
vba ×1
xcode4.3 ×1