Ios 在编辑模式下更改UITableViewCell中红色减号按钮的位置
这段代码在iOS 5和iOS 6上的UITableViewCell子类中运行良好:Ios 在编辑模式下更改UITableViewCell中红色减号按钮的位置,ios,objective-c,uitableview,ios7,Ios,Objective C,Uitableview,Ios7,这段代码在iOS 5和iOS 6上的UITableViewCell子类中运行良好: if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"]) { CGRect newFrame = subview.frame; //Use your desired x value newFrame.origin.x = 280; s
if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"]) {
CGRect newFrame = subview.frame;
//Use your desired x value
newFrame.origin.x = 280;
subview.frame = newFrame;
}
在iOS 7上调试我的应用程序时,我发现上面的所有子视图都被称为UITableViewCellContentView
,并且无法知道UITableViewCellEditControl
子视图在哪里
是否有更好的解决方案来执行上述操作?调试时,我发现iOS 7中的所有子视图现在都称为“UITableViewCellEditControl”。我尝试记录所有子视图子视图,发现
UITableViewCellEditControl
现在是子视图的子视图。这是一个丑陋的临时解决方案:
for (UIView *subview in self.subviews)
{
if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"]) {
CGRect newFrame = subview.frame;
newFrame.origin.x = 280;
subview.frame = newFrame;
}
else
{
if(IS_OS_7_OR_LATER)
{
for(UIView *subsubview in subview.subviews)
{
if ([NSStringFromClass([subsubview class]) isEqualToString:@"UITableViewCellEditControl"]) {
CGRect newFrame = subsubview.frame;
newFrame.origin.x = 280;
subsubview.frame = newFrame;
}
}
}
}
尝试对子视图进行递归检查。@santhu已经这样做了,并发现
UITableViewCellEditControl
位于子视图的子视图中。我已经发布了一个答案,谢谢。我曾经遇到过这个问题来破解子视图的子视图。但人们说如果我们这样做,应用程序可能会被苹果拒绝。@santhu现在我看不到其他方法来解决这个问题我们只能等待,看看这个应用的更新是否会被拒绝。@Segev你通过应用商店的审核了吗?