我想制作一个标签,根据它将显示的字符串值的大小更改其大小。目前我正在这样做:
[tfScroll setStringValue:strScoller];
[tfScroll sizeToFit];
Run Code Online (Sandbox Code Playgroud)
然而,这是行不通的。我错过了什么?
我知道这个问题被问了很多,但我已经尝试了所有其他答案,我无法弄清楚为什么动画停止选择器不被调用.这是代码:
-(void) moveImage:(UIImageView *)image duration:(NSTimeInterval)duration curve:(int)curve x:(CGFloat)x y:(CGFloat)y annKey:(NSString *) annKey{
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:duration];
[UIView setAnimationCurve:curve];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDidStopSelector:@selector(animationFinished:finished:context:)];
CGAffineTransform transform = CGAffineTransformMakeTranslation(x, y);
image.transform = transform;
[UIView beginAnimations:annKey context:NULL];
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
}
这是发送所有正确参数的主要动画功能.
- (void)animationFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context
{
if ([animationID isEqualToString:@"Burn"])
{
NSLog(@"Animation: %@ has finished.",animationID);
}
NSLog(@"This does not get called, why not?");
}
Run Code Online (Sandbox Code Playgroud)
我的NSLog都没有显示文字.我究竟做错了什么?
在将字符串转换为整数时,有没有办法保持前导零.比如说字符串是"01"有没有办法可以将它存储为整数值01?
- (int) getNextHand{
int temp = [[numbersArray objectAtIndex:cardsDelt] intValue];
NSLog(@"Card %i: %i", cardsDelt, temp);
cardsDelt++;
return temp;
}
Run Code Online (Sandbox Code Playgroud)
我的numbersArray包含4个前导零数字:"00""01""02""03"
我在重新分配POSTCODE_VALID变量时遇到问题.当满足if条件时,它不会被重新分配.我确保满足if条件并且应该将其设置为true.但事实并非如此.有谁知道为什么?
POSTCODE_VALID=false
find codepoint/ | while read i ;
do
if [[ $i =~ codepoint/$AREACODE ]]
then
#This is the variable that doesn't get re-assigned.
POSTCODE_VALID=true
fi
done
Run Code Online (Sandbox Code Playgroud) 我有一个UITableView在第一次调用时加载其数组项目.但是,当我刷新tableview时它会崩溃,因为委托方法cellForRowAtIndexPath被提前调用.我有一个整数,表示我的主数据数组的索引,并在我的刷新按钮中重置为0.然而它崩溃是因为它试图在重置之前重新加载数据.我通常会使用indexPath.row作为我的索引,但是数组很复杂,而indexPath.row与我想要为每个单元格显示的内容不匹配.下面是一些代码,任何帮助表示赞赏.
当我下拉刷新AND viewDidLoad以准备数据时,会调用此方法
- (IBAction)refresh:(id)sender {
itemIndexer = 0;
[sender beginRefreshing];
[self loadData];
}
Run Code Online (Sandbox Code Playgroud)
我的loadData方法的一部分
-(void) loadData {
dispatch_queue_t backgroundQueue = dispatch_queue_create("com.Foo.myqueue", 0);
dispatch_queue_t mainQueue = dispatch_get_main_queue();
dispatch_async(backgroundQueue, ^{
[self downloadData];
dispatch_async(mainQueue, ^{
[self.tableView reloadData];
[_rcRefresh endRefreshing];
});
});
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad中我调用最初加载tableview:
[self refresh:_rcRefresh];
Run Code Online (Sandbox Code Playgroud)
我得到一个超出数组错误范围的索引.我使用断点来确定原因,原因很简单,因为刷新没有被调用,否则itemIndexer将被设置为0.而不是它的数字大于数组1.如果它真的有必要我可以发布cellForRowAtIndexPath但是我不确定你是否需要它,如果它在第一次调用时工作.因此,总结对tableview的第一次调用是有效的,并且数据加载正常,但刷新会导致索引超出数组的边界,就像从不调用refresh:一样.
我在解决如何将线路限制到最大长度方面遇到了一些困难.假设我有两个SDL_Point p1并p2构造一条线,p2由鼠标位置确定并且p1是常量.我有一个函数来计算线的长度,我检查该长度是否大于最大长度.如果它大于我想要缩放线的最大长度,那么角度是相同的,效果将被p2缩放以满足最大长度标准.
我正在使用这种方法来计算距离:
double Foo::CalculateDistance(SDL_Point p1, SDL_Point p2)
{
int xd = p2.x- p1.x;
int yd = p2.y - p1.y;
return sqrt(xd*xd + yd*yd);
}
SDL_Point Foo::CalculatePosition(int mousePosX, int mousePosY)
{
SDL_Point p2;
p2.x = mousePosX;
p2.y = mousePosY;
lineLength = (int) CalculateDistance(p2,p1);
if (lineLength > MAX_LINE_LENGTH)
{
// Buggy code
p2.x /= lineLength;
p2.y /= lineLength;
}
return p2;
}
Run Code Online (Sandbox Code Playgroud)
任何有关这方面的指导将非常感谢!
Dim strText As String = tbRefine.Text
Dim sql As String = "SELECT user_name,forename,surname,game_cash,reg_group FROM tblGame WHERE user_name LIKE '" + strSearchText + "' & '*'"
Dim dsRefine As New DataSet
GetDataset(sql, "tblGame", dsRefine)
MsgBox(dsRefine.Tables("tblGame").Rows(0).Item(2).ToString)
Run Code Online (Sandbox Code Playgroud)
这不起作用,崩溃并说数据集中没有任何内容.我知道数据集函数之前的工作成功.当我将sql语句打印到microsoft访问时,它工作正常.我究竟做错了什么